@Override public LocalContext initialValue() { return getInstance(); }
@Override public Ruby getRuntime() { return getGlobalRuntime(this); }
@Override public RubyInstanceConfig getRubyInstanceConfig() { return getGlobalRuntimeConfig(this); }
static LocalContextProvider getProviderInstance(LocalContextScope scope, LocalVariableBehavior behavior, boolean lazy) { switch(scope) { case THREADSAFE : return new ThreadSafeLocalContextProvider(behavior, lazy); case CONCURRENT : return new ConcurrentLocalContextProvider(behavior, lazy); case SINGLETHREAD : return new SingleThreadLocalContextProvider(behavior, lazy); case SINGLETON : default : return SingletonLocalContextProvider.getProvider(behavior, lazy); } }
public ConcurrentLocalContextProvider(LocalVariableBehavior behavior, boolean lazy) { super( getGlobalRuntimeConfigOrNew(), behavior ); this.lazy = lazy; }
static LocalContextProvider getProviderInstance(LocalContextScope scope, LocalVariableBehavior behavior, boolean lazy) { switch(scope) { case THREADSAFE : return new ThreadSafeLocalContextProvider(behavior, lazy); case CONCURRENT : return new ConcurrentLocalContextProvider(behavior, lazy); case SINGLETHREAD : return new SingleThreadLocalContextProvider(behavior, lazy); case SINGLETON : default : return SingletonLocalContextProvider.getProvider(behavior, lazy); } }
public ConcurrentLocalContextProvider(LocalVariableBehavior behavior) { super( getGlobalRuntimeConfigOrNew(), behavior ); }
private LocalContextProvider getProviderInstance(LocalContextScope scope, LocalVariableBehavior behavior, boolean lazy) { switch(scope) { case THREADSAFE : return new ThreadSafeLocalContextProvider(behavior, lazy); case CONCURRENT : return new ConcurrentLocalContextProvider(behavior, lazy); case SINGLETHREAD : return new SingleThreadLocalContextProvider(behavior, lazy); case SINGLETON : default : LocalVariableBehavior b = SingletonLocalContextProvider.getLocalVariableBehaviorOrNull(); if (b == null) return new SingletonLocalContextProvider(behavior, lazy); else return new SingletonLocalContextProvider(b, lazy); } }
@Override public LocalContext initialValue() { return getInstance(); }
public ConcurrentLocalContextProvider(LocalVariableBehavior behavior, boolean lazy) { super( getGlobalRuntimeConfigOrNew(), behavior ); this.lazy = lazy; }
@Override public Ruby getRuntime() { return getGlobalRuntime(this); }
@Override public RubyInstanceConfig getRubyInstanceConfig() { return getGlobalRuntimeConfig(this); }
private LocalContextProvider getProviderInstance(LocalContextScope scope, LocalVariableBehavior behavior, boolean lazy) { switch(scope) { case THREADSAFE : return new ThreadSafeLocalContextProvider(behavior, lazy); case CONCURRENT : return new ConcurrentLocalContextProvider(behavior, lazy); case SINGLETHREAD : return new SingleThreadLocalContextProvider(behavior, lazy); case SINGLETON : default : LocalVariableBehavior b = SingletonLocalContextProvider.getLocalVariableBehaviorOrNull(); if (b == null) return new SingletonLocalContextProvider(behavior, lazy); else return new SingletonLocalContextProvider(b, lazy); } }
@Override public AtomicReference<LocalContext> initialValue() { AtomicReference<LocalContext> contextRef = null; try { contextRef = new AtomicReference<LocalContext>(getInstance()); contextRefs.add(contextRef); return contextRef; } catch (NullPointerException npe) { if (contextRefs == null) { // contextRefs became null, we've been terminated if (contextRef != null) { contextRef.get().remove(); } return null; } else { throw npe; } } } };
public ConcurrentLocalContextProvider(LocalVariableBehavior behavior) { super( getGlobalRuntimeConfigOrNew(), behavior ); }
@Override public AtomicReference<LocalContext> initialValue() { AtomicReference<LocalContext> contextRef = null; try { contextRef = new AtomicReference<LocalContext>(getInstance()); contextRefs.add(contextRef); return contextRef; } catch (NullPointerException npe) { if (contextRefs == null) { // contextRefs became null, we've been terminated if (contextRef != null) { contextRef.get().remove(); } return null; } else { throw npe; } } } };