]> gcc.gnu.org Git - gcc.git/blame - libjava/include/no-threads.h
Implement invocation interface; don't create new thread for main.
[gcc.git] / libjava / include / no-threads.h
CommitLineData
ee9dd372
TT
1// -*- c++ -*-
2// no-threads.h - Defines for using no threads.
3
2ba5f774 4/* Copyright (C) 1998, 1999 Free Software Foundation
ee9dd372
TT
5
6 This file is part of libgcj.
7
8This software is copyrighted work licensed under the terms of the
9Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
10details. */
11
12#ifndef __JV_NO_THREADS__
13#define __JV_NO_THREADS__
14
15#include "config.h"
16
17#include <stdlib.h>
18#ifdef HAVE_UNISTD_H
19#include <unistd.h>
20#endif
21
22//
23// Typedefs.
24//
25
26typedef int _Jv_ConditionVariable_t;
27typedef int _Jv_Mutex_t;
28typedef int _Jv_Thread_t;
29typedef void _Jv_ThreadStartFunc (java::lang::Thread *);
30
31
32//
33// Condition variables.
34//
35
36inline void
37_Jv_CondInit (_Jv_ConditionVariable_t *)
38{
39}
40
41// Waiting is ok provided there is a timeout. Otherwise we will just
42// wait forever.
43inline int
44_Jv_CondWait (_Jv_ConditionVariable_t *, _Jv_Mutex_t *,
45 jlong millis, jint nanos)
46{
47 if (millis == 0 && nanos == 0)
48 JvFail ("_Jv_CondWait without timeout");
49
50#ifdef HAVE_SLEEP
51 int seconds = millis / 1000;
52 if (seconds > 0)
53 sleep (seconds);
54#endif
55
56 return 0;
57}
58
59inline int
60_Jv_CondNotify (_Jv_ConditionVariable_t *, _Jv_Mutex_t *)
61{
62 // It is ok to notify -- it just has no effect.
63 return 0;
64}
65
66inline int
67_Jv_CondNotifyAll (_Jv_ConditionVariable_t *, _Jv_Mutex_t *)
68{
69 // It is ok to notify -- it just has no effect.
70 return 0;
71}
72
73
74//
75// Mutexes.
76//
77
78inline void
79_Jv_MutexInit (_Jv_Mutex_t *)
80{
81}
82
83inline int
84_Jv_MutexLock (_Jv_Mutex_t *)
85{
86 return 0;
87}
88
89inline int
90_Jv_MutexUnlock (_Jv_Mutex_t *)
91{
92 return 0;
93}
94
95
96//
97// Thread creation and manipulation.
98//
99
100inline void
101_Jv_InitThreads (void)
102{
103}
104
c93d7fae
PB
105_Jv_Thread_t *
106_Jv_ThreadInitData (java::lang::Thread *);
e301621d 107
ee9dd372 108inline void
e301621d 109_Jv_ThreadDestroyData (_Jv_Thread_t *data)
ee9dd372 110{
ee9dd372
TT
111}
112
113inline java::lang::Thread *
114_Jv_ThreadCurrent (void)
115{
116 extern java::lang::Thread *_Jv_OnlyThread;
117 return _Jv_OnlyThread;
118}
119
120inline void
121_Jv_ThreadYield (void)
122{
123}
124
125inline void
126_Jv_ThreadSetPriority (_Jv_Thread_t *, jint)
127{
128}
129
c93d7fae
PB
130inline void
131_Jv_ThreadRegister (_Jv_Thread_t *data)
132{
133}
134
135inline void
136_Jv_ThreadUnRegister (void)
137{
138}
139
ee9dd372
TT
140void _Jv_ThreadStart (java::lang::Thread *, _Jv_Thread_t *,
141 _Jv_ThreadStartFunc *meth);
142
143inline void
144_Jv_ThreadWait (void)
145{
146}
147
148inline void
149_Jv_ThreadInterrupt (_Jv_Thread_t *)
150{
151}
152
153#endif /* __JV_NO_THREADS__ */
This page took 0.15746 seconds and 5 git commands to generate.