void mono_thread_info_wait_for_resume (MonoThreadInfo* info) { int res; THREADS_SUSPEND_DEBUG ("**WAIT self-resume %p\n", mono_thread_info_get_tid (info)); res = mono_os_sem_wait (&info->resume_semaphore, MONO_SEM_FLAGS_NONE); g_assert (res != -1); }
static void mono_thread_info_suspend_lock_with_info (MonoThreadInfo *info) { g_assert (info); g_assert (mono_thread_info_is_current (info)); g_assert (mono_thread_info_is_live (info)); MONO_ENTER_GC_SAFE_WITH_INFO(info); int res = mono_os_sem_wait (&global_suspend_semaphore, MONO_SEM_FLAGS_NONE); g_assert (res != -1); MONO_EXIT_GC_SAFE_WITH_INFO; }