OSDN Git Service

2005-09-18 Richard Guenther <rguenther@suse.de>
[pf3gnuchains/gcc-fork.git] / libjava / no-threads.cc
index a493d00..4153dcd 100644 (file)
@@ -1,6 +1,6 @@
 // no-thread.cc - Implementation of `no threads' threads.
 
-/* Copyright (C) 1998, 1999  Red Hat, Inc.
+/* Copyright (C) 1998, 1999, 2001  Free Software Foundation
 
    This file is part of libgcj.
 
@@ -13,17 +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)
+{
+  // 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 *)
 {
-  // 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;
-  (*meth) (thread);
+  throw new java::lang::InternalError (JvNewStringLatin1 ("Thread.start called but threads not available"));
 }