// 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.
#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"));
}