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);
      }
   }
}