273 |
|
int s = runState; |
274 |
|
if (s >= state) |
275 |
|
return false; |
276 |
< |
if (_unsafe.compareAndSwapInt(this, runStateOffset, s, state)) |
276 |
> |
if (UNSAFE.compareAndSwapInt(this, runStateOffset, s, state)) |
277 |
|
return true; |
278 |
|
} |
279 |
|
} |
409 |
|
*/ |
410 |
|
private static void setSlot(ForkJoinTask<?>[] q, int i, |
411 |
|
ForkJoinTask<?> t){ |
412 |
< |
_unsafe.putOrderedObject(q, (i << qShift) + qBase, t); |
412 |
> |
UNSAFE.putOrderedObject(q, (i << qShift) + qBase, t); |
413 |
|
} |
414 |
|
|
415 |
|
/** |
418 |
|
*/ |
419 |
|
private static boolean casSlotNull(ForkJoinTask<?>[] q, int i, |
420 |
|
ForkJoinTask<?> t) { |
421 |
< |
return _unsafe.compareAndSwapObject(q, (i << qShift) + qBase, t, null); |
421 |
> |
return UNSAFE.compareAndSwapObject(q, (i << qShift) + qBase, t, null); |
422 |
|
} |
423 |
|
|
424 |
|
/** |
425 |
|
* Sets sp in store-order. |
426 |
|
*/ |
427 |
|
private void storeSp(int s) { |
428 |
< |
_unsafe.putOrderedInt(this, spOffset, s); |
428 |
> |
UNSAFE.putOrderedInt(this, spOffset, s); |
429 |
|
} |
430 |
|
|
431 |
|
// Main queue methods |
756 |
|
|
757 |
|
private static long fieldOffset(String fieldName) |
758 |
|
throws NoSuchFieldException { |
759 |
< |
return _unsafe.objectFieldOffset |
759 |
> |
return UNSAFE.objectFieldOffset |
760 |
|
(ForkJoinWorkerThread.class.getDeclaredField(fieldName)); |
761 |
|
} |
762 |
|
|
763 |
< |
static final Unsafe _unsafe; |
763 |
> |
static final Unsafe UNSAFE; |
764 |
|
static final long baseOffset; |
765 |
|
static final long spOffset; |
766 |
|
static final long runStateOffset; |
768 |
|
static final int qShift; |
769 |
|
static { |
770 |
|
try { |
771 |
< |
_unsafe = getUnsafe(); |
771 |
> |
UNSAFE = getUnsafe(); |
772 |
|
baseOffset = fieldOffset("base"); |
773 |
|
spOffset = fieldOffset("sp"); |
774 |
|
runStateOffset = fieldOffset("runState"); |
775 |
< |
qBase = _unsafe.arrayBaseOffset(ForkJoinTask[].class); |
776 |
< |
int s = _unsafe.arrayIndexScale(ForkJoinTask[].class); |
775 |
> |
qBase = UNSAFE.arrayBaseOffset(ForkJoinTask[].class); |
776 |
> |
int s = UNSAFE.arrayIndexScale(ForkJoinTask[].class); |
777 |
|
if ((s & (s-1)) != 0) |
778 |
|
throw new Error("data type scale not a power of two"); |
779 |
|
qShift = 31 - Integer.numberOfLeadingZeros(s); |