Merge pull request #857 from akka/wip-2688-switch-to-s.c.u.unsafe-detection-√

#2688 - Switching to s.c.u.Unsafe.instance for akka.util.Unsafe.instance
This commit is contained in:
Viktor Klang (√) 2012-11-08 03:20:52 -08:00
commit 2866ecfa85

View file

@ -5,27 +5,9 @@
package akka.util; package akka.util;
import java.lang.reflect.Field;
/** /**
* INTERNAL API * INTERNAL API
*/ */
public final class Unsafe { public final class Unsafe {
public final static sun.misc.Unsafe instance; public final static sun.misc.Unsafe instance = scala.concurrent.util.Unsafe.instance;
static {
try {
sun.misc.Unsafe found = null;
for(Field field : sun.misc.Unsafe.class.getDeclaredFields()) {
if (field.getType() == sun.misc.Unsafe.class) {
field.setAccessible(true);
found = (sun.misc.Unsafe) field.get(null);
break;
}
}
if (found == null) throw new IllegalStateException("Can't find instance of sun.misc.Unsafe");
else instance = found;
} catch(Throwable t) {
throw new ExceptionInInitializerError(t);
}
}
} }