On Mon, Nov 16, 2015 at 2:42 PM, Aleksey Shipilev < aleksey.shipi...@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 failures... 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"??