[runtime] Add a lock-free read hashtable.
[mono.git] / mono / utils / mono-threads.h
index f03bfeffbec4b66e608d5e3f693e5183f8e12b6d..dbd25a8f7787a052504a9c95014b6c2cd3b1c010 100644 (file)
@@ -28,6 +28,7 @@ typedef HANDLE MonoNativeThreadHandle; /* unused */
 typedef DWORD mono_native_thread_return_t;
 
 #define MONO_NATIVE_THREAD_ID_TO_UINT(tid) (tid)
+#define MONO_UINT_TO_NATIVE_THREAD_ID(tid) ((MonoNativeThreadId)(tid))
 
 #else
 
@@ -51,6 +52,7 @@ typedef pthread_t MonoNativeThreadId;
 typedef void* mono_native_thread_return_t;
 
 #define MONO_NATIVE_THREAD_ID_TO_UINT(tid) (gsize)(tid)
+#define MONO_UINT_TO_NATIVE_THREAD_ID(tid) (MonoNativeThreadId)(gsize)(tid)
 
 #endif /* #ifdef HOST_WIN32 */
 
@@ -182,7 +184,7 @@ typedef struct {
 typedef struct {
        void (*setup_async_callback) (MonoContext *ctx, void (*async_cb)(void *fun), gpointer user_data);
        gboolean (*thread_state_init_from_sigctx) (MonoThreadUnwindState *state, void *sigctx);
-       gboolean (*thread_state_init_from_handle) (MonoThreadUnwindState *tctx, MonoNativeThreadId thread_id, MonoNativeThreadHandle thread_handle);
+       gboolean (*thread_state_init_from_handle) (MonoThreadUnwindState *tctx, MonoThreadInfo *info);
 } MonoThreadInfoRuntimeCallbacks;
 
 /*
@@ -247,7 +249,10 @@ void
 mono_thread_info_set_name (MonoNativeThreadId tid, const char *name) MONO_INTERNAL;
 
 void
-mono_thread_info_finish_suspend (void) MONO_INTERNAL;
+mono_thread_info_finish_suspend (MonoThreadInfo *info) MONO_INTERNAL;
+
+void
+mono_thread_info_finish_suspend_and_resume (MonoThreadInfo *info) MONO_INTERNAL;
 
 void
 mono_thread_info_self_suspend (void) MONO_INTERNAL;