454 |
|
} |
455 |
|
|
456 |
|
// Unsafe mechanics |
457 |
< |
private static final sun.misc.Unsafe U; |
457 |
> |
private static final sun.misc.Unsafe U = sun.misc.Unsafe.getUnsafe(); |
458 |
|
private static final long STATE; |
459 |
|
private static final long RUNNER; |
460 |
|
private static final long WAITERS; |
461 |
|
static { |
462 |
|
try { |
463 |
< |
U = sun.misc.Unsafe.getUnsafe(); |
464 |
< |
Class<?> k = FutureTask.class; |
465 |
< |
STATE = U.objectFieldOffset(k.getDeclaredField("state")); |
466 |
< |
RUNNER = U.objectFieldOffset(k.getDeclaredField("runner")); |
467 |
< |
WAITERS = U.objectFieldOffset(k.getDeclaredField("waiters")); |
463 |
> |
STATE = U.objectFieldOffset |
464 |
> |
(FutureTask.class.getDeclaredField("state")); |
465 |
> |
RUNNER = U.objectFieldOffset |
466 |
> |
(FutureTask.class.getDeclaredField("runner")); |
467 |
> |
WAITERS = U.objectFieldOffset |
468 |
> |
(FutureTask.class.getDeclaredField("waiters")); |
469 |
|
} catch (ReflectiveOperationException e) { |
470 |
|
throw new Error(e); |
471 |
|
} |