RFR: jsr166 jdk9 integration wave 2

Martin Buchholz martinrb at google.com
Mon Nov 16 23:04:33 UTC 2015

On Mon, Nov 16, 2015 at 2:42 PM, Aleksey Shipilev <
aleksey.shipilev at oracle.com> wrote:

> ForkJoinWorkerThread.newThread/:
>  * I think this one requires CCC, because it changes public API in
> newThread.
That's where someone from Oracle needs to help out ...

> PhaserBasic/:
>  * Are those tracing statements ("// trace("barrier action",
> startTime);") kept for a reason? Should we conditionalize them with
> "static final boolean"-s?
Phaser/Basic has been troublesome, and it still has unresolved rare
Those traces were obviously added for debugging, but I'm still reluctant to
remove them...

> TimeoutLockLoops/:
>  * Should we use Runtime.availableProcessors() instead of 8?
No!  Use of Runtime.availableProcessors has been a source of test flakiness
and excessive test runtime.  Currently Moore's law is doubling
availableProcessors every few years.  Someone can try to create a stress
test mode for jtreg tests, but they should not be the default.  And that's
a big project.

Part of the problem is that newer machines are shipping with a large number
of availableProcessors, but those processors are a shared resource that
tests should not take ownership of.  availableProcessors was more useful
during the transition from 1 to 4 than it will be from 4 to 1024.
 "available to whom"??

More information about the core-libs-dev mailing list