OSDN Git Service

2014-04-04 Richard Biener <rguenther@suse.de>
[pf3gnuchains/gcc-fork.git] / libjava / no-threads.cc
index fcfa713..4153dcd 100644 (file)
@@ -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,23 +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 *thread, _Jv_Thread_t *,
-                _Jv_ThreadStartFunc *meth)
+_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"));
 }