X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fio-layer%2Fthread-private.h;h=3ea1af1197884f7efaa31af5c52d7e52b970c7d5;hb=8eeb2cef8fb37b7aaeed5fb0c31550a1701f9bdf;hp=72ec686c353e46257b20a4d11683de00bb3e5cc3;hpb=04d1b4116331e3813b8f75304f714a5d61ba1214;p=mono.git diff --git a/mono/io-layer/thread-private.h b/mono/io-layer/thread-private.h index 72ec686c353..3ea1af11978 100644 --- a/mono/io-layer/thread-private.h +++ b/mono/io-layer/thread-private.h @@ -13,67 +13,24 @@ #include #include #include -#ifdef HAVE_SEMAPHORE_H -#include -#endif -#ifdef USE_MACH_SEMA -#include -#include -#include -typedef semaphore_t MonoSemType; -#define MONO_SEM_INIT(addr,value) semaphore_create (current_task (), (addr), SYNC_POLICY_FIFO, (value)) -#define MONO_SEM_WAIT(sem) semaphore_wait (*(sem)) -#define MONO_SEM_POST(sem) semaphore_signal (*(sem)) -#define MONO_SEM_DESTROY(sem) semaphore_destroy (current_task (), *(sem)) -#else -typedef sem_t MonoSemType; -#define MONO_SEM_INIT(addr,value) sem_init ((addr), 0, (value)) -#define MONO_SEM_WAIT(sem) sem_wait ((sem)) -#define MONO_SEM_POST(sem) sem_post ((sem)) -#define MONO_SEM_DESTROY(sem) sem_destroy ((sem)) -#endif +#include /* There doesn't seem to be a defined symbol for this */ #define _WAPI_THREAD_CURRENT (gpointer)0xFFFFFFFE -extern gpointer _wapi_thread_duplicate (void); extern struct _WapiHandleOps _wapi_thread_ops; -typedef enum { - THREAD_STATE_START, - THREAD_STATE_EXITED -} WapiThreadState; - struct _WapiHandle_thread { - WapiThreadState state; - guint32 exitstatus; - pid_t owner_pid; - gboolean joined; - guint32 create_flags; - /* Fields below this point are only valid for the owning process */ pthread_t id; GPtrArray *owned_mutexes; - gpointer handle; - MonoSemType suspend_sem; - guint32 (*start_routine)(gpointer arg); - gpointer start_arg; - GSList *apc_queue; }; -typedef struct -{ - guint32 (*callback)(gpointer arg); - gpointer param; -} ApcInfo; +typedef struct _WapiHandle_thread WapiHandle_thread; -extern gboolean _wapi_thread_apc_pending (gpointer handle); extern gboolean _wapi_thread_cur_apc_pending (void); -extern gboolean _wapi_thread_dispatch_apc_queue (gpointer handle); extern void _wapi_thread_own_mutex (gpointer mutex); extern void _wapi_thread_disown_mutex (gpointer mutex); -extern gpointer _wapi_thread_handle_from_id (pthread_t tid); -extern void _wapi_thread_set_termination_details (gpointer handle, - guint32 exitstatus); +extern void _wapi_thread_cleanup (void); #endif /* _WAPI_THREAD_PRIVATE_H_ */