summaryrefslogtreecommitdiff
path: root/src/forkjoin/scala/concurrent/util/Unsafe.java
diff options
context:
space:
mode:
authorJosh Suereth <joshua.suereth@gmail.com>2012-06-11 10:19:30 -0400
committerJosh Suereth <joshua.suereth@gmail.com>2012-06-11 10:19:30 -0400
commitecc323233e2ff4f005e0d2b7ac62487954678977 (patch)
treea629e58a8b822645216b74729aa11085e35772f0 /src/forkjoin/scala/concurrent/util/Unsafe.java
parentde6989a068982a216621082c01dd1db3861940f8 (diff)
downloadscala-ecc323233e2ff4f005e0d2b7ac62487954678977.tar.gz
scala-ecc323233e2ff4f005e0d2b7ac62487954678977.tar.bz2
scala-ecc323233e2ff4f005e0d2b7ac62487954678977.zip
Forkjoin and fjbg are now always compiled in the build.
* forkjoin.done/forkjoine.clean can test forkjoin source * fjbg.done/fjbg.clean can test fjbg source.
Diffstat (limited to 'src/forkjoin/scala/concurrent/util/Unsafe.java')
-rw-r--r--src/forkjoin/scala/concurrent/util/Unsafe.java35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/forkjoin/scala/concurrent/util/Unsafe.java b/src/forkjoin/scala/concurrent/util/Unsafe.java
new file mode 100644
index 0000000000..0cd48758d5
--- /dev/null
+++ b/src/forkjoin/scala/concurrent/util/Unsafe.java
@@ -0,0 +1,35 @@
+/* __ *\
+** ________ ___ / / ___ Scala API **
+** / __/ __// _ | / / / _ | (c) 2003-2011, LAMP/EPFL **
+** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
+** /____/\___/_/ |_/____/_/ | | **
+** |/ **
+\* */
+
+package scala.concurrent.util;
+
+
+
+import java.lang.reflect.Field;
+
+
+
+public final class Unsafe {
+ public final static sun.misc.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);
+ }
+ }
+}