diff options
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")); } |