aboutsummaryrefslogtreecommitdiff
path: root/libjava/gnu
diff options
context:
space:
mode:
authorAnthony Green <green@gcc.gnu.org>2000-09-04 16:55:48 +0000
committerAnthony Green <green@gcc.gnu.org>2000-09-04 16:55:48 +0000
commit890a31f478d6c419093c54b53111809540f4b9c4 (patch)
tree0e11c3202467de16f9293623c00841fbe6ad2149 /libjava/gnu
parent4993ddc14f3be5f5a4c858b16f237602262ba360 (diff)
downloadgcc-890a31f478d6c419093c54b53111809540f4b9c4.zip
gcc-890a31f478d6c419093c54b53111809540f4b9c4.tar.gz
gcc-890a31f478d6c419093c54b53111809540f4b9c4.tar.bz2
File.java (deleteOnExit): New method.
* java/io/File.java (deleteOnExit): New method. * gnu/gcj/runtime/FileDeleter.java: New class. * java/lang/natRuntime.cc (exit): Call FileDeleter.deleteOnExitNow() * Makefile.am: Add FileDeleter.java. * Makefile.in: Rebuilt. From-SVN: r36141
Diffstat (limited to 'libjava/gnu')
-rw-r--r--libjava/gnu/gcj/runtime/FileDeleter.java38
1 files changed, 38 insertions, 0 deletions
diff --git a/libjava/gnu/gcj/runtime/FileDeleter.java b/libjava/gnu/gcj/runtime/FileDeleter.java
new file mode 100644
index 0000000..cc7aa9d
--- /dev/null
+++ b/libjava/gnu/gcj/runtime/FileDeleter.java
@@ -0,0 +1,38 @@
+/* Copyright (C) 2000 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+package gnu.gcj.runtime;
+
+import java.io.*;
+import java.util.*;
+
+public final class FileDeleter
+{
+ public synchronized static void add (File f)
+ {
+ if (deleteOnExitStack == null)
+ deleteOnExitStack = new Stack ();
+
+ deleteOnExitStack.push (f);
+ }
+
+ // Helper method called by java.lang.Runtime.exit() to perform
+ // pending deletions.
+ public static void deleteOnExitNow ()
+ {
+ while (!deleteOnExitStack.empty ())
+ ((File)(deleteOnExitStack.pop ())).delete ();
+ }
+
+ // A stack of files to delete upon normal termination.
+ private static Stack deleteOnExitStack;
+}
+
+
+
+