2007-09-02 Zoltan Varga <vargaz@gmail.com>
[mono.git] / mono / io-layer / threads.h
index 56965eb064f08f5fdb6f3a99e202a815899eee7d..068a63a9c03da7988d34889b4e4d0ecf7ebaffab 100644 (file)
@@ -42,11 +42,11 @@ typedef guint32 (*WapiApcProc)(gpointer);
 
 extern gpointer CreateThread(WapiSecurityAttributes *security,
                             guint32 stacksize, WapiThreadStart start,
-                            gpointer param, guint32 create, guint32 *tid);
-extern gpointer OpenThread (guint32 access, gboolean inherit, guint32 tid);
+                            gpointer param, guint32 create, gsize *tid); /* NB tid is 32bit in MS API */
+extern gpointer OpenThread (guint32 access, gboolean inherit, gsize tid); /* NB tid is 32bit in MS API */
 extern void ExitThread(guint32 exitcode) G_GNUC_NORETURN;
 extern gboolean GetExitCodeThread(gpointer handle, guint32 *exitcode);
-extern guint32 GetCurrentThreadId(void);
+extern gsize GetCurrentThreadId(void); /* NB return is 32bit in MS API */
 extern gpointer GetCurrentThread(void);
 extern guint32 ResumeThread(gpointer handle);
 extern guint32 SuspendThread(gpointer handle);
@@ -59,5 +59,11 @@ extern void Sleep(guint32 ms);
 extern guint32 SleepEx(guint32 ms, gboolean alertable);
 extern guint32 QueueUserAPC (WapiApcProc apc_callback, gpointer thread_handle, 
                                        gpointer param);
+
+/* Kludge alert! Making this visible outside io-layer is broken, but I
+ * can't find any w32 call that will let me do this.
+ */
+extern void _wapi_thread_signal_self (guint32 exitstatus);
+
 G_END_DECLS
 #endif /* _WAPI_THREADS_H_ */