void
mono_threads_init_platform (void)
-{
+{
+ mono_threads_init_dead_letter ();
}
void
thread_abort (info->native_handle);
}
+void
+mono_threads_core_abort_syscall (MonoThreadInfo *info)
+{
+}
+
+gboolean
+mono_threads_core_needs_abort_syscall (void)
+{
+ return FALSE;
+}
+
gboolean
mono_threads_core_suspend (MonoThreadInfo *info)
{
kern_return_t ret;
+ gboolean res;
+
g_assert (info);
ret = thread_suspend (info->native_handle);
if (ret != KERN_SUCCESS)
return FALSE;
- return mono_threads_get_runtime_callbacks ()->
+ res = mono_threads_get_runtime_callbacks ()->
thread_state_init_from_handle (&info->suspend_state, mono_thread_info_get_tid (info), info->native_handle);
+ if (!res)
+ thread_resume (info->native_handle);
+ return res;
}
gboolean
return FALSE;
mono_mach_arch_thread_state_to_mcontext (state, mctx);
+#ifdef TARGET_ARM64
+ g_assert_not_reached ();
+#else
uctx.uc_mcontext = mctx;
+#endif
mono_monoctx_to_sigctx (&tmp, &uctx);
mono_mach_arch_mcontext_to_thread_state (mctx, state);
mono_threads_platform_register (MonoThreadInfo *info)
{
info->native_handle = mach_thread_self ();
+ mono_threads_install_dead_letter ();
}
void
return pthread_create (tid, NULL, func, arg) == 0;
}
+void
+mono_threads_core_set_name (MonoNativeThreadId tid, const char *name)
+{
+ /* pthread_setnmae_np() on Mac is not documented and doesn't receive thread id. */
+}
+
#endif