Merge pull request #1685 from esdrubal/touint64
[mono.git] / mono / io-layer / threads.h
1 /*
2  * threads.h:  Thread handles
3  *
4  * Author:
5  *      Dick Porter (dick@ximian.com)
6  *
7  * (C) 2002 Ximian, Inc.
8  */
9
10 #ifndef _WAPI_THREADS_H_
11 #define _WAPI_THREADS_H_
12
13 #include <glib.h>
14
15 #include <mono/io-layer/handles.h>
16 #include <mono/io-layer/io.h>
17 #include <mono/io-layer/status.h>
18 #include <mono/io-layer/processes.h>
19 #include <mono/io-layer/access.h>
20
21 G_BEGIN_DECLS
22
23 #define STILL_ACTIVE STATUS_PENDING
24
25 #define THREAD_ALL_ACCESS               (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3ff)
26
27 typedef guint32 (*WapiThreadStart)(gpointer);
28
29 extern gsize GetCurrentThreadId(void); /* NB return is 32bit in MS API */
30 extern void Sleep(guint32 ms);
31 extern guint32 SleepEx(guint32 ms, gboolean alertable);
32
33 void wapi_clear_interruption (void);
34 gboolean wapi_thread_set_wait_handle (gpointer handle);
35 void wapi_thread_clear_wait_handle (gpointer handle);
36 void wapi_self_interrupt (void);
37
38 gpointer wapi_prepare_interrupt_thread (gpointer thread_handle);
39 void wapi_finish_interrupt_thread (gpointer wait_handle);
40
41 gpointer wapi_create_thread_handle (void);
42 void wapi_thread_handle_set_exited (gpointer handle, guint32 exitstatus);
43 void wapi_ref_thread_handle (gpointer handle);
44 gpointer wapi_get_current_thread_handle (void);
45
46 char* wapi_current_thread_desc (void);
47
48 G_END_DECLS
49 #endif /* _WAPI_THREADS_H_ */