static gboolean mono_thread_info_core_resume (MonoThreadInfo *info) { gboolean res = FALSE; if (info->create_suspended) { MonoNativeThreadId tid = mono_thread_info_get_tid (info); /* Have to special case this, as the normal suspend/resume pair are racy, they don't work if he resume is received before the suspend */ info->create_suspended = FALSE; mono_threads_core_resume_created (info, tid); return TRUE; } switch (mono_threads_transition_request_resume (info)) { case ResumeError: res = FALSE; break; case ResumeOk: res = TRUE; break; case ResumeInitSelfResume: resume_self_suspended (info); res = TRUE; break; case ResumeInitAsyncResume: resume_async_suspended (info); res = TRUE; break; case ResumeInitBlockingResume: resume_blocking_suspended (info); res = TRUE; break; } return res; }
static gboolean mono_thread_info_core_resume (MonoThreadInfo *info) { gboolean res = FALSE; switch (mono_threads_transition_request_resume (info)) { case ResumeError: res = FALSE; break; case ResumeOk: res = TRUE; break; case ResumeInitSelfResume: resume_self_suspended (info); res = TRUE; break; case ResumeInitAsyncResume: resume_async_suspended (info); res = TRUE; break; case ResumeInitBlockingResume: resume_blocking_suspended (info); res = TRUE; break; } return res; }