From 8e9ed72dc7ff97f81b7d423a22a6adb47395da61 Mon Sep 17 00:00:00 2001 From: green Date: Mon, 4 Sep 2000 16:55:48 +0000 Subject: * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36141 138bc75d-0d04-0410-961f-82ee72b054a4 --- libjava/gnu/gcj/runtime/FileDeleter.java | 38 ++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 libjava/gnu/gcj/runtime/FileDeleter.java (limited to 'libjava/gnu') diff --git a/libjava/gnu/gcj/runtime/FileDeleter.java b/libjava/gnu/gcj/runtime/FileDeleter.java new file mode 100644 index 00000000000..cc7aa9d50b7 --- /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; +} + + + + -- cgit v1.2.3