Merge branch 'BigIntegerParse'
[mono.git] / mono / io-layer / threads.h
index b49a1d746fcb72ca09c26593144b9b48550e8953..be0205002348e9931e8c6231de21a3bf207158b0 100644 (file)
@@ -40,24 +40,35 @@ G_BEGIN_DECLS
 typedef guint32 (*WapiThreadStart)(gpointer);
 typedef guint32 (*WapiApcProc)(gpointer);
 
-extern gpointer CreateThread(WapiSecurityAttributes *security,
-                            guint32 stacksize, WapiThreadStart start,
-                            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 gsize GetCurrentThreadId(void); /* NB return is 32bit in MS API */
 extern gpointer GetCurrentThread(void);
-extern guint32 ResumeThread(gpointer handle);
-extern guint32 SuspendThread(gpointer handle);
-extern guint32 mono_pthread_key_for_tls (guint32 idx);
-extern guint32 TlsAlloc(void);
-extern gboolean TlsFree(guint32 idx);
-extern gpointer TlsGetValue(guint32 idx);
-extern gboolean TlsSetValue(guint32 idx, gpointer value);
 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);
+
+void wapi_thread_interrupt_self (void);
+void wapi_interrupt_thread (gpointer handle);
+void wapi_clear_interruption (void);
+gboolean wapi_thread_set_wait_handle (gpointer handle);
+void wapi_thread_clear_wait_handle (gpointer handle);
+void wapi_self_interrupt (void);
+
+gpointer wapi_prepare_interrupt_thread (gpointer thread_handle);
+void wapi_finish_interrupt_thread (gpointer wait_handle);
+
+
+char* wapi_current_thread_desc (void);
+
+gpointer wapi_create_thread_handle (void);
+void wapi_thread_handle_set_exited (gpointer handle, guint32 exitstatus);
+void wapi_ref_thread_handle (gpointer handle);
+
 G_END_DECLS
 #endif /* _WAPI_THREADS_H_ */