diff options
author | Tom Tromey <tromey@redhat.com> | 2001-10-10 22:25:43 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 2001-10-10 22:25:43 +0000 |
commit | eeedeb5a179c0c4a378bc14d5bebfcfc4dfcf354 (patch) | |
tree | 6facc0ca8bcfaba4b6989fa00c24d85c2c5d0aa0 /libjava/no-threads.cc | |
parent | a8fee9482f156705563bc70af58254b3d8a1292d (diff) | |
download | gcc-eeedeb5a179c0c4a378bc14d5bebfcfc4dfcf354.zip gcc-eeedeb5a179c0c4a378bc14d5bebfcfc4dfcf354.tar.gz gcc-eeedeb5a179c0c4a378bc14d5bebfcfc4dfcf354.tar.bz2 |
natFinalizerThread.cc: New file.
* gnu/gcj/runtime/natFinalizerThread.cc: New file.
* java/lang/natRuntime.cc: Include FinalizerThread.h.
(runFinalization): Call finalizerReady.
* nogc.cc (_Jv_GCInitializeFinalizers): New function.
* prims.cc: Include VirtualMachineError.h, FinalizerThread.h.
(_Jv_CreateJavaVM): Start the finalizer thread.
* no-threads.cc: Include InternalError.h.
(_Jv_ThreadStart): Throw InternalError.
(_Jv_ThreadInitData): Don't throw error if this is not the first
thread.
* Makefile.in: Rebuilt.
* Makefile.am (ordinary_java_source_files): Added
FinalizerThread.java.
(nat_source_files): Added natFinalizerThread.cc.
* include/jvm.h (_Jv_GCInitializeFinalizers): Declare.
* boehm.cc (_Jv_GCInitializeFinalizers): New function.
* gnu/gcj/runtime/FirstThread.java (run): Start finalizer thread.
* gnu/gcj/runtime/FinalizerThread.java: New file.
From-SVN: r46163
Diffstat (limited to 'libjava/no-threads.cc')
-rw-r--r-- | libjava/no-threads.cc | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/libjava/no-threads.cc b/libjava/no-threads.cc index dc98243..4153dcd 100644 --- a/libjava/no-threads.cc +++ b/libjava/no-threads.cc @@ -1,6 +1,6 @@ // no-thread.cc - Implementation of `no threads' threads. -/* Copyright (C) 1998, 1999 Free Software Foundation +/* Copyright (C) 1998, 1999, 2001 Free Software Foundation This file is part of libgcj. @@ -13,22 +13,21 @@ details. */ #include <gcj/cni.h> #include <jvm.h> #include <java/lang/Thread.h> +#include <java/lang/InternalError.h> java::lang::Thread *_Jv_OnlyThread = NULL; _Jv_Thread_t * -_Jv_ThreadInitData (java::lang::Thread * thread) +_Jv_ThreadInitData (java::lang::Thread *thread) { - // Don't use JvAssert, since we want this to fail even when compiled - // without assertions. - if (_Jv_OnlyThread) - JvFail ("only thread already running"); - _Jv_OnlyThread = thread; + // It is ok to create a new Thread object, as long as it isn't started. + if (_Jv_OnlyThread == NULL) + _Jv_OnlyThread = thread; return NULL; } void _Jv_ThreadStart (java::lang::Thread *, _Jv_Thread_t *, _Jv_ThreadStartFunc *) { - JvFail ("Thread.start called but threads not available"); + throw new java::lang::InternalError (JvNewStringLatin1 ("Thread.start called but threads not available")); } |