/** Constructs a new finalizer thread. */ private Finalizer( Class<?> finalizableReferenceClass, ReferenceQueue<Object> queue, PhantomReference<Object> frqReference) { this.queue = queue; this.finalizableReferenceClassReference = new WeakReference<Class<?>>(finalizableReferenceClass); // Keep track of the FRQ that started us so we know when to stop. this.frqReference = frqReference; }
public boolean isDone() { return ref.get() == null; } });
@Override public void clear() { LIVE_SET.remove(this); super.clear(); } }
@Override public synchronized String toString() { String s; if (toString != null) { s = toString.get(); if (s != null) { return s; } } s = Integer.toString(value); toString = new WeakReference<>(s); return s; } }
TestCls test(TestCls s) { TestCls store = f != null ? f.get() : null; if (store == null) { store = new TestCls(s); f = new WeakReference<>(store); } return store; }
public void testAwaitClear() { final WeakReference<Object> ref = new WeakReference<>(new Object()); GcFinalization.awaitClear(ref); assertNull(ref.get()); }
public CleanupMapTask(MapMakerInternalMap<?, ?, ?, ?> map) { this.mapReference = new WeakReference<MapMakerInternalMap<?, ?, ?, ?>>(map); }
public ClassLoader getClassLoader() { return classLoader.get(); }
@Override public void clear() { LIVE_SET.remove(this); super.clear(); } }
public void testStrongImplementations() { for (Striped<?> striped : strongImplementations()) { WeakReference<Object> weakRef = new WeakReference<>(striped.get(new Object())); WeakReference<Object> garbage = new WeakReference<>(new Object()); GcFinalization.awaitClear(garbage); assertNotNull(weakRef.get()); } }
protected T wrapCachedClass(Class klass) { return (T) new WeakReference(klass); }
protected Object unwrapCachedValue(T cached) { return ((WeakReference) cached).get(); }
@Test public void justUnsubscribed() throws Exception { o = new Object(); WeakReference<Object> wr = new WeakReference<Object>(o); TestObserver<Long> to = Observable.just(o).count().toObservable().onTerminateDetach().test(); o = null; to.cancel(); System.gc(); Thread.sleep(200); Assert.assertNull("Object retained!", wr.get()); }
WeakReference weakWidget = new WeakReference(widget);
public Chart getChartView() { return mWeakChart == null ? null : mWeakChart.get(); }
@Test public void just() throws Exception { o = new Object(); WeakReference<Object> wr = new WeakReference<Object>(o); TestObserver<Object> to = new TestObserver<Object>(); Observable.just(o).count().toObservable().onTerminateDetach().subscribe(to); to.assertValue(1L); to.assertComplete(); to.assertNoErrors(); o = null; System.gc(); Thread.sleep(200); Assert.assertNull("Object retained!", wr.get()); }
@Override Reference<V> fold(V value) { return new WeakReference<V>(value); }
public Chart getChartView() { return mWeakChart == null ? null : mWeakChart.get(); }
@Test public void justUnsubscribed() throws Exception { o = new Object(); WeakReference<Object> wr = new WeakReference<Object>(o); TestSubscriber<Object> ts = new TestSubscriber<Object>(0); Flowable.just(o).count().toFlowable().onTerminateDetach().subscribe(ts); ts.cancel(); o = null; System.gc(); Thread.sleep(200); Assert.assertNull("Object retained!", wr.get()); }
/** * Registers that this {@link TaskThread} is run for the specified * {@link TaskAction}. This can be explicitly called from subtypes * to associate a single {@link TaskThread} across multiple tag actions. */ protected final void associateWith(TaskAction action) { action.workerThread = this; action.log = new WeakReference<AnnotatedLargeText>(log); }