Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
[mono.git] / mono / metadata / threads.h
1 /*
2  * threads.h: Thread support internal calls
3  *
4  * Author:
5  *      Dick Porter (dick@ximian.com)
6  *
7  * (C) 2001 Ximian, Inc
8  */
9
10 #ifndef _MONO_METADATA_THREADS_H_
11 #define _MONO_METADATA_THREADS_H_
12
13 #include <config.h>
14
15 #include <mono/metadata/object.h>
16
17 extern void mono_thread_init (MonoDomain *domain);
18 extern void mono_thread_cleanup(void);
19
20 extern HANDLE ves_icall_System_Threading_Thread_Thread_internal(MonoObject *this, MonoObject *start);
21 extern void ves_icall_System_Threading_Thread_Start_internal(MonoObject *this, HANDLE thread);
22 extern void ves_icall_System_Threading_Thread_Sleep_internal(int ms);
23 extern MonoObject *ves_icall_System_Threading_Thread_CurrentThread_internal(void);
24 extern gboolean ves_icall_System_Threading_Thread_Join_internal(MonoObject *this, int ms, HANDLE thread);
25 extern void ves_icall_System_Threading_Thread_SlotHash_store(MonoObject *data);
26 extern MonoObject *ves_icall_System_Threading_Thread_SlotHash_lookup(void);
27 extern gboolean ves_icall_System_Threading_Monitor_Monitor_try_enter(MonoObject *obj, int ms);
28 extern void ves_icall_System_Threading_Monitor_Monitor_exit(MonoObject *obj);
29 extern gboolean ves_icall_System_Threading_Monitor_Monitor_test_owner(MonoObject *obj);
30 extern gboolean ves_icall_System_Threading_Monitor_Monitor_test_synchronised(MonoObject *obj);
31 extern void ves_icall_System_Threading_Monitor_Monitor_pulse(MonoObject *obj);
32 extern void ves_icall_System_Threading_Monitor_Monitor_pulse_all(MonoObject *obj);
33 extern gboolean ves_icall_System_Threading_Monitor_Monitor_wait(MonoObject *obj, int ms);
34 extern HANDLE ves_icall_System_Threading_Mutex_CreateMutex_internal(MonoBoolean owned,char *name);
35 extern void ves_icall_System_Threading_Mutex_ReleaseMutex_internal(HANDLE handle);
36 extern void ves_icall_System_Threading_Mutex_ReleaseMutex_internal (HANDLE handle );
37 extern HANDLE ves_icall_System_Threading_Events_CreateEvent_internal (MonoBoolean manual,MonoBoolean initial,char *name);
38 extern gboolean ves_icall_System_Threading_Events_SetEvent_internal (HANDLE handle);
39 extern gboolean ves_icall_System_Threading_Events_ResetEvent_internal (HANDLE handle);
40
41 extern gboolean ves_icall_System_Threading_WaitHandle_WaitAll_internal(MonoArray *mono_handles, gint32 ms, gboolean exitContext);
42 extern gint32 ves_icall_System_Threading_WaitHandle_WaitAny_internal(MonoArray *mono_handles, gint32 ms, gboolean exitContext);
43 extern gboolean ves_icall_System_Threading_WaitHandle_WaitOne_internal(MonoObject *this, HANDLE handle, gint32 ms, gboolean exitContext);
44
45
46 #endif /* _MONO_METADATA_THREADS_H_ */