void
mono_threads_suspend_abort_syscall (MonoThreadInfo *info)
{
	/* We signal a thread to break it from the current syscall.
	 * This signal should not be interpreted as a suspend request. */
	info->syscall_break_signal = TRUE;
	if (!mono_threads_pthread_kill (info, mono_threads_posix_get_abort_signal ()))
		mono_threads_add_to_pending_operation_set (info);
}
Esempio n. 2
0
gboolean
mono_threads_core_begin_async_suspend (MonoThreadInfo *info, gboolean interrupt_kernel)
{
    int sig = interrupt_kernel ? mono_threads_posix_get_abort_signal () :  mono_threads_posix_get_suspend_signal ();

    if (!mono_threads_pthread_kill (info, sig)) {
        mono_threads_add_to_pending_operation_set (info);
        return TRUE;
    }
    return FALSE;
}