# HG changeset patch # User Thomas Wuerthinger # Date 1339164452 -7200 # Node ID 1319b704541dc339a86012576727b6c4c81268d3 # Parent 13321732f85c0155134e456220314664575c452a Return GraalRuntime with no capabilities if VM does not support creation of GraalRuntime instance. diff -r 13321732f85c -r 1319b704541d graal/com.oracle.graal.api/src/com/oracle/graal/api/Graal.java --- a/graal/com.oracle.graal.api/src/com/oracle/graal/api/Graal.java Fri Jun 08 15:42:16 2012 +0200 +++ b/graal/com.oracle.graal.api/src/com/oracle/graal/api/Graal.java Fri Jun 08 16:07:32 2012 +0200 @@ -25,8 +25,7 @@ public class Graal { - private static GraalRuntime runtime; - private static volatile boolean initialized; + private static volatile GraalRuntime runtime; private static native GraalRuntime initializeRuntime(); @@ -35,21 +34,25 @@ return runtime; } - public static boolean hasRuntime() { - return getRuntime() != null; - } - private static void ensureInitialized() { - boolean wasInitialized = initialized; - if (!wasInitialized) { + GraalRuntime oldValue = runtime; + if (oldValue == null) { synchronized (Graal.class) { - if (!initialized) { + if (runtime == null) { try { runtime = initializeRuntime(); } catch (UnsatisfiedLinkError e) { - runtime = null; + runtime = new GraalRuntime() { + @Override + public String getName() { + return ""; + } + @Override + public T getCapability(Class clazz) { + return null; + } + }; } - initialized = true; } } }