1024 |
|
|
1025 |
|
// Unsafe mechanics |
1026 |
|
private static final Unsafe U = Unsafe.getUnsafe(); |
1027 |
< |
private static final long SEED = U.objectFieldOffset( |
1028 |
< |
Thread.class, "threadLocalRandomSeed"); |
1029 |
< |
private static final long PROBE = U.objectFieldOffset( |
1030 |
< |
Thread.class, "threadLocalRandomProbe"); |
1031 |
< |
private static final long SECONDARY = U.objectFieldOffset( |
1032 |
< |
Thread.class, "threadLocalRandomSecondarySeed"); |
1033 |
< |
private static final long THREADLOCALS = U.objectFieldOffset( |
1034 |
< |
Thread.class, "threadLocals"); |
1035 |
< |
private static final long INHERITABLETHREADLOCALS = U.objectFieldOffset( |
1036 |
< |
Thread.class, "inheritableThreadLocals"); |
1037 |
< |
private static final long INHERITEDACCESSCONTROLCONTEXT = U.objectFieldOffset( |
1038 |
< |
Thread.class, "inheritedAccessControlContext"); |
1027 |
> |
private static final long SEED |
1028 |
> |
= U.objectFieldOffset(Thread.class, "threadLocalRandomSeed"); |
1029 |
> |
private static final long PROBE |
1030 |
> |
= U.objectFieldOffset(Thread.class, "threadLocalRandomProbe"); |
1031 |
> |
private static final long SECONDARY |
1032 |
> |
= U.objectFieldOffset(Thread.class, "threadLocalRandomSecondarySeed"); |
1033 |
> |
private static final long THREADLOCALS |
1034 |
> |
= U.objectFieldOffset(Thread.class, "threadLocals"); |
1035 |
> |
private static final long INHERITABLETHREADLOCALS |
1036 |
> |
= U.objectFieldOffset(Thread.class, "inheritableThreadLocals"); |
1037 |
> |
private static final long INHERITEDACCESSCONTROLCONTEXT |
1038 |
> |
= U.objectFieldOffset(Thread.class, "inheritedAccessControlContext"); |
1039 |
|
|
1040 |
|
/** Rarely-used holder for the second of a pair of Gaussians */ |
1041 |
|
private static final ThreadLocal<Double> nextLocalGaussian = |