8220478: java/util/concurrent/ConcurrentHashMap/ToArray.java timed out intermittently

8223379: Clarify ForkJoinPool.getStealCount() javadoc

Reviewed-by: martin
This commit is contained in:
Doug Lea 2019-05-24 08:51:04 -07:00
parent 22a4313efc
commit ae0b26613c

View File

@ -867,8 +867,8 @@ public class ForkJoinPool extends AbstractExecutorService {
growArray(true); growArray(true);
else { else {
phase = 0; // full volatile unlock phase = 0; // full volatile unlock
if (a[m & (s - 1)] == null) if (((s - base) & ~1) == 0) // size 0 or 1
signal = true; // was empty signal = true;
} }
} }
return signal; return signal;
@ -2667,13 +2667,13 @@ public class ForkJoinPool extends AbstractExecutorService {
} }
/** /**
* Returns an estimate of the total number of tasks stolen from * Returns an estimate of the total number of completed tasks that
* one thread's work queue by another. The reported value * were executed by a thread other than their submitter. The
* underestimates the actual total number of steals when the pool * reported value underestimates the actual total number of steals
* is not quiescent. This value may be useful for monitoring and * when the pool is not quiescent. This value may be useful for
* tuning fork/join programs: in general, steal counts should be * monitoring and tuning fork/join programs: in general, steal
* high enough to keep threads busy, but low enough to avoid * counts should be high enough to keep threads busy, but low
* overhead and contention across threads. * enough to avoid overhead and contention across threads.
* *
* @return the number of steals * @return the number of steals
*/ */