diff options
author | Anthony Green <green@gcc.gnu.org> | 2000-09-04 16:55:48 +0000 |
---|---|---|
committer | Anthony Green <green@gcc.gnu.org> | 2000-09-04 16:55:48 +0000 |
commit | 890a31f478d6c419093c54b53111809540f4b9c4 (patch) | |
tree | 0e11c3202467de16f9293623c00841fbe6ad2149 /libjava/gnu | |
parent | 4993ddc14f3be5f5a4c858b16f237602262ba360 (diff) | |
download | gcc-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.java | 38 |
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; +} + + + + |