1034 |
|
*/ |
1035 |
|
final boolean trySharedUnpush(ForkJoinTask<?> task) { |
1036 |
|
boolean popped = false; |
1037 |
< |
int s = top - 1, al; ForkJoinTask<?>[] a; |
1037 |
> |
int s = top - 1, al; ForkJoinTask<?>[] a; |
1038 |
|
if ((a = array) != null && (al = a.length) > 0) { |
1039 |
|
int index = (al - 1) & s; |
1040 |
|
long offset = ((long)index << ASHIFT) + ABASE; |
1041 |
< |
ForkJoinTask<?> t = (ForkJoinTask<?>) |
1042 |
< |
U.getObject(a, offset); |
1041 |
> |
ForkJoinTask<?> t = (ForkJoinTask<?>) U.getObject(a, offset); |
1042 |
|
if (t == task && |
1043 |
|
U.compareAndSwapInt(this, QLOCK, 0, 1)) { |
1044 |
|
if (U.compareAndSwapObject(a, offset, task, null)) { |