1522 |
|
* @param q if non-null, the queue holding tasks to be processed |
1523 |
|
*/ |
1524 |
|
final void signalWork(WorkQueue q) { |
1525 |
< |
long c; int e, u, i, n; WorkQueue[] ws; WorkQueue w; Thread p; |
1525 |
> |
long c; int e, u, i, n; WorkQueue[] ws; WorkQueue w; Thread p; |
1526 |
|
if ((u = (int)((c = ctl) >>> 32)) < 0) { |
1527 |
|
if ((e = (int)c) > 0) { |
1528 |
|
if ((ws = workQueues) != null && ws.length > (i = e & SMASK) && |
1786 |
|
} |
1787 |
|
} |
1788 |
|
for (;;) { // help stealer or descend to its stealer |
1789 |
< |
ForkJoinTask[] a; int b; |
1789 |
> |
ForkJoinTask[] a; int b; |
1790 |
|
if (subtask.status < 0) // surround probes with |
1791 |
|
continue restart; // consistency checks |
1792 |
|
if ((b = v.base) - v.top < 0 && (a = v.array) != null) { |
2230 |
|
*/ |
2231 |
|
static boolean tryExternalUnpush(ForkJoinTask<?> t) { |
2232 |
|
ForkJoinPool p; WorkQueue[] ws; WorkQueue q; |
2233 |
< |
ForkJoinTask<?>[] a; int m, s, z; |
2233 |
> |
ForkJoinTask<?>[] a; int m, s, z; |
2234 |
|
if (t != null && |
2235 |
|
(z = ThreadLocalRandom.getProbe()) != 0 && |
2236 |
|
(p = common) != null && |
2325 |
|
static void externalHelpJoin(ForkJoinTask<?> t) { |
2326 |
|
// Some hard-to-avoid overlap with tryExternalUnpush |
2327 |
|
ForkJoinPool p; WorkQueue[] ws; WorkQueue q, w; |
2328 |
< |
ForkJoinTask<?>[] a; int m, s, n, z; |
2328 |
> |
ForkJoinTask<?>[] a; int m, s, n, z; |
2329 |
|
if (t != null && |
2330 |
|
(z = ThreadLocalRandom.getProbe()) != 0 && |
2331 |
|
(p = common) != null && |