1109 |
|
setDoneExceptionally((Throwable) ex); |
1110 |
|
} |
1111 |
|
|
1112 |
– |
|
1112 |
|
// Unsafe mechanics |
1113 |
< |
private static long fieldOffset(String fieldName, Class<?> klazz) { |
1113 |
> |
|
1114 |
> |
private static final sun.misc.Unsafe UNSAFE = sun.misc.Unsafe.getUnsafe(); |
1115 |
> |
private static final long statusOffset = |
1116 |
> |
objectFieldOffset("status", ForkJoinTask.class); |
1117 |
> |
|
1118 |
> |
private static long objectFieldOffset(String field, Class<?> klazz) { |
1119 |
|
try { |
1120 |
< |
return UNSAFE.objectFieldOffset(klazz.getDeclaredField(fieldName)); |
1120 |
> |
return UNSAFE.objectFieldOffset(klazz.getDeclaredField(field)); |
1121 |
|
} catch (NoSuchFieldException e) { |
1122 |
< |
// Convert Exception to Error |
1123 |
< |
NoSuchFieldError error = new NoSuchFieldError(fieldName); |
1122 |
> |
// Convert Exception to corresponding Error |
1123 |
> |
NoSuchFieldError error = new NoSuchFieldError(field); |
1124 |
|
error.initCause(e); |
1125 |
|
throw error; |
1126 |
|
} |
1127 |
|
} |
1124 |
– |
|
1125 |
– |
private static final sun.misc.Unsafe UNSAFE = sun.misc.Unsafe.getUnsafe(); |
1126 |
– |
private static final long statusOffset = |
1127 |
– |
fieldOffset("status", ForkJoinTask.class); |
1128 |
– |
|
1128 |
|
} |