2 * thread-private.h: Private definitions for thread handles
5 * Dick Porter (dick@ximian.com)
7 * (C) 2002 Ximian, Inc.
10 #ifndef _WAPI_THREAD_PRIVATE_H_
11 #define _WAPI_THREAD_PRIVATE_H_
16 #include <mono/utils/mono-semaphore.h>
18 /* There doesn't seem to be a defined symbol for this */
19 #define _WAPI_THREAD_CURRENT (gpointer)0xFFFFFFFE
20 extern gpointer _wapi_thread_duplicate (void);
22 extern struct _WapiHandleOps _wapi_thread_ops;
29 #define INTERRUPTION_REQUESTED_HANDLE (gpointer)0xFFFFFFFE
31 struct _WapiHandle_thread
34 GPtrArray *owned_mutexes;
36 * Handle this thread waits on. If this is INTERRUPTION_REQUESTED_HANDLE,
37 * it means the thread is interrupted by another thread, and shouldn't enter
39 * This also acts as a reference for the handle.
46 guint32 (*callback)(gpointer arg);
50 extern gboolean _wapi_thread_apc_pending (gpointer handle);
51 extern gboolean _wapi_thread_cur_apc_pending (void);
52 extern gboolean _wapi_thread_dispatch_apc_queue (gpointer handle);
53 extern void _wapi_thread_own_mutex (gpointer mutex);
54 extern void _wapi_thread_disown_mutex (gpointer mutex);
55 extern gpointer _wapi_thread_handle_from_id (pthread_t tid);
56 extern void _wapi_thread_cleanup (void);
58 #endif /* _WAPI_THREAD_PRIVATE_H_ */