lisp/c/mthread_posix.c
void
suspend_signal_handler (int sig)
{
    sigset_t signal_set;

    /*
     * Block all signals except SIGUSR2 while suspended.
     */
    sigfillset (&signal_set);
    sigdelset (&signal_set, SIGUSR2);
    susp_sentinel = 1;
    sigsuspend (&signal_set);

    /*
     * Once I'm here, I've been resumed, and the resume signal
     * handler has been run to completion.
     */
    return;
}
/*
 * Handle SIGUSR1 in the target thread, to suspend it until
 * receiving SIGUSR2 (resume).
 */
Handle SIGUSR1 in the target thread, to suspend it until
receiving SIGUSR2 (resume).
Handle SIGUSR1 in the target thread to suspend it until receiving SIGUSR2 ( resume ) .
void
suspend_signal_handler (int sig)
{
    sigset_t signal_set;
    sigfillset (&signal_set);
    sigdelset (&signal_set, SIGUSR2);
    susp_sentinel = 1;
    sigsuspend (&signal_set);
    return;
}
void suspend_signal_handler ( int sig ) { sigset_t signal_set ; sigfillset ( & signal_set ) ; sigdelset ( & signal_set , SIGUSR2 ) ; susp_sentinel = 1 ; sigsuspend ( & signal_set ) ; return ; }
Handle SIGUSR1 in the target thread, to suspend it until
 receiving SIGUSR2 (resume).
Handle SIGUSR1 in the target thread to suspend it until receiving SIGUSR2 ( resume ) .
/*
     * Block all signals except SIGUSR2 while suspended.
     */ /*
     * Once I'm here, I've been resumed, and the resume signal
     * handler has been run to completion.
     */