TLRUtil class
Пакет: com.hypixel.fastutil.util
Файл: com/hypixel/fastutil/util/TLRUtil.java
Поля (8)
| Модификаторы | Тип | Имя |
|---|---|---|
|
|
PROBE |
final |
Unsafe |
UNSAFE |
|
|
UNSAFE |
|
Unsafe |
var0 |
|
|
var0 |
|
|
var0 |
|
Field |
var1 |
|
Constructor |
var2 |
Методы (3)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
static |
int |
advanceProbeint advanceProbe(int var0) |
static |
int |
getProbeint getProbe() |
static |
void |
localInitvoid localInit() |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.fastutil.util;
class="kw">import java.lang.reflect.Constructor;
class="kw">import java.lang.reflect.Field;
class="kw">import java.util.concurrent.ThreadLocalRandom;
class="kw">import sun.misc.Unsafe;
class="kw">public class TLRUtil {
class="kw">private class="kw">static class="kw">final Unsafe UNSAFE;
class="kw">private class="kw">static class="kw">final long PROBE;
class="kw">public TLRUtil() {
}
class="kw">public class="kw">static void localInit() {
ThreadLocalRandom.current();
}
class="kw">public class="kw">static int getProbe() {
class="kw">return UNSAFE.getInt(Thread.currentThread(), PROBE);
}
class="kw">public class="kw">static int advanceProbe(int var0) {
var0 ^= var0 << 13;
var0 ^= var0 >>> 17;
var0 ^= var0 << 5;
UNSAFE.putInt(Thread.currentThread(), PROBE, var0);
class="kw">return var0;
}
class="kw">static {
Unsafe var0;
try {
Field var1 = Unsafe.class.getDeclaredField("theUnsafe");
var1.setAccessible(true);
var0 = (Unsafe)var1.get(null);
} catch (Exception var5) {
try {
Constructor var2 = Unsafe.class.getDeclaredConstructor();
var2.setAccessible(true);
var0 = var2.newInstance();
} catch (Exception var4) {
throw SneakyThrow.sneakyThrow(var4);
}
}
UNSAFE = var0;
try {
PROBE = UNSAFE.objectFieldOffset(Thread.class.getDeclaredField("threadLocalRandomProbe"));
} catch (NoSuchFieldException var3) {
throw SneakyThrow.sneakyThrow(var3);
}
}
}