diff options
Diffstat (limited to 'tests/036-finalizer/src/Main.java')
-rw-r--r-- | tests/036-finalizer/src/Main.java | 107 |
1 files changed, 0 insertions, 107 deletions
diff --git a/tests/036-finalizer/src/Main.java b/tests/036-finalizer/src/Main.java deleted file mode 100644 index c29cc1148..000000000 --- a/tests/036-finalizer/src/Main.java +++ /dev/null @@ -1,107 +0,0 @@ -// Copyright 2008 The Android Open Source Project - -import java.lang.ref.WeakReference; - -/** - * Some finalizer tests. - * - * This only works if System.runFinalization() causes finalizers to run - * immediately or very soon. - */ -public class Main { - private static void snooze(int ms) { - try { - Thread.sleep(ms); - } catch (InterruptedException ie) { - System.out.println("Snooze: " + ie.getMessage()); - } - } - - public static WeakReference makeRef() { - /* - * Make ft in another thread, so there is no danger of - * a conservative reference leaking onto the main thread's - * stack. - */ - - final WeakReference[] wimp = new WeakReference[1]; - Thread t = new Thread() { - public void run() { - FinalizerTest ft = new FinalizerTest("wahoo"); - wimp[0] = new WeakReference(ft); - ft = null; - } - }; - - t.start(); - - try { - t.join(); - } catch (InterruptedException ie) { - throw new RuntimeException(ie); - } - - return wimp[0]; - } - - public static String wimpString(final WeakReference wimp) { - /* - * Do the work in another thread, so there is no danger of a - * conservative reference to ft leaking onto the main thread's - * stack. - */ - - final String[] s = new String[1]; - Thread t = new Thread() { - public void run() { - Object ref = wimp.get(); - if (ref != null) { - s[0] = ref.toString(); - } - } - }; - - t.start(); - - try { - t.join(); - } catch (InterruptedException ie) { - throw new RuntimeException(ie); - } - - return s[0]; - } - - public static void main(String[] args) { - WeakReference wimp = makeRef(); - - System.out.println("wimp: " + wimpString(wimp)); - - /* this will try to collect and finalize ft */ - System.out.println("gc"); - System.gc(); - - System.out.println("wimp: " + wimpString(wimp)); - System.out.println("finalize"); - System.runFinalization(); - System.out.println("wimp: " + wimpString(wimp)); - - System.out.println("sleep"); - snooze(1000); - - System.out.println("reborn: " + FinalizerTest.mReborn); - System.out.println("wimp: " + wimpString(wimp)); - System.out.println("reset reborn"); - System.gc(); - FinalizerTest.mReborn = FinalizerTest.mNothing; - System.out.println("gc + finalize"); - System.gc(); - System.runFinalization(); - - System.out.println("sleep"); - snooze(1000); - - System.out.println("reborn: " + FinalizerTest.mReborn); - System.out.println("wimp: " + wimpString(wimp)); - } -} |