diff options
Diffstat (limited to 'libjava/include/no-threads.h')
-rw-r--r-- | libjava/include/no-threads.h | 154 |
1 files changed, 154 insertions, 0 deletions
diff --git a/libjava/include/no-threads.h b/libjava/include/no-threads.h new file mode 100644 index 00000000000..5de33868eaa --- /dev/null +++ b/libjava/include/no-threads.h @@ -0,0 +1,154 @@ +// -*- c++ -*- +// no-threads.h - Defines for using no threads. + +/* Copyright (C) 1998, 1999 Cygnus Solutions + + This file is part of libgcj. + +This software is copyrighted work licensed under the terms of the +Libgcj License. Please consult the file "LIBGCJ_LICENSE" for +details. */ + +#ifndef __JV_NO_THREADS__ +#define __JV_NO_THREADS__ + +#include "config.h" + +#include <stdlib.h> +#ifdef HAVE_UNISTD_H +#include <unistd.h> +#endif + +// +// Typedefs. +// + +typedef int _Jv_ConditionVariable_t; +typedef int _Jv_Mutex_t; +typedef int _Jv_Thread_t; +typedef void _Jv_ThreadStartFunc (java::lang::Thread *); + + +// +// Condition variables. +// + +inline void +_Jv_CondInit (_Jv_ConditionVariable_t *) +{ +} + +// Waiting is ok provided there is a timeout. Otherwise we will just +// wait forever. +inline int +_Jv_CondWait (_Jv_ConditionVariable_t *, _Jv_Mutex_t *, + jlong millis, jint nanos) +{ + if (millis == 0 && nanos == 0) + JvFail ("_Jv_CondWait without timeout"); + +#ifdef HAVE_SLEEP + int seconds = millis / 1000; + if (seconds > 0) + sleep (seconds); +#endif + + return 0; +} + +inline int +_Jv_CondNotify (_Jv_ConditionVariable_t *, _Jv_Mutex_t *) +{ + // It is ok to notify -- it just has no effect. + return 0; +} + +inline int +_Jv_CondNotifyAll (_Jv_ConditionVariable_t *, _Jv_Mutex_t *) +{ + // It is ok to notify -- it just has no effect. + return 0; +} + + +// +// Mutexes. +// + +inline void +_Jv_MutexInit (_Jv_Mutex_t *) +{ +} + +inline int +_Jv_MutexLock (_Jv_Mutex_t *) +{ + return 0; +} + +inline int +_Jv_MutexUnlock (_Jv_Mutex_t *) +{ + return 0; +} + + +// +// Thread creation and manipulation. +// + +inline void +_Jv_InitThreads (void) +{ +} + +inline void +_Jv_ThreadInitData (_Jv_Thread_t **data, java::lang::Thread *) +{ + *data = NULL; +} + +inline java::lang::Thread * +_Jv_ThreadCurrent (void) +{ + extern java::lang::Thread *_Jv_OnlyThread; + return _Jv_OnlyThread; +} + +inline void +_Jv_ThreadYield (void) +{ +} + +inline void +_Jv_ThreadSetPriority (_Jv_Thread_t *, jint) +{ +} + +inline void +_Jv_ThreadCancel (_Jv_Thread_t *, void *) +{ + JvFail ("_Jv_ThreadCancel"); +} + +// Like Cancel, but doesn't run cleanups. +inline void +_Jv_ThreadDestroy (_Jv_Thread_t *) +{ + JvFail ("_Jv_ThreadDestroy"); +} + +void _Jv_ThreadStart (java::lang::Thread *, _Jv_Thread_t *, + _Jv_ThreadStartFunc *meth); + +inline void +_Jv_ThreadWait (void) +{ +} + +inline void +_Jv_ThreadInterrupt (_Jv_Thread_t *) +{ +} + +#endif /* __JV_NO_THREADS__ */ |