1047 |
|
ASHIFT = 31 - Integer.numberOfLeadingZeros(s); |
1048 |
|
} |
1049 |
|
} |
1050 |
+ |
|
1051 |
|
/** |
1052 |
|
* Per-thread records for threads that submit to pools. Currently |
1053 |
|
* holds only pseudo-random seed / index that is used to choose |
1104 |
|
private static final RuntimePermission modifyThreadPermission; |
1105 |
|
|
1106 |
|
/** |
1107 |
< |
* Per-thread submission bookeeping. Shared across all pools |
1107 |
> |
* Per-thread submission bookkeeping. Shared across all pools |
1108 |
|
* to reduce ThreadLocal pollution and because random motion |
1109 |
|
* to avoid contention in one pool is likely to hold for others. |
1110 |
|
*/ |
1536 |
|
t = (ForkJoinTask<?>)U.getObjectVolatile(a, i); |
1537 |
|
if (q.base == b && ec >= 0 && t != null && |
1538 |
|
U.compareAndSwapObject(a, i, t, null)) { |
1539 |
< |
q.base = b + 1; // specialization of pollAt |
1539 |
> |
if (q.top - (q.base = b + 1) > 1) |
1540 |
> |
signalWork(); // help pushes signal |
1541 |
|
return t; |
1542 |
|
} |
1543 |
|
else if (ec < 0 || j <= m) { |