siglongjmp()

Restore the environment saved by sigsetjmp(), including the signal mask

Synopsis:

#include <setjmp.h>

void siglongjmp( sigjmp_buf env, 
                 int val );

Arguments:

env
The environment saved by the most recent call to sigsetjmp().
val
The value that you want sigsetjmp() to return.

Library:

libc

Use the -l c option to qcc to link against this library. This library is usually included automatically.

Description:

The siglongjmp() function is a superset of the longjmp() function, but also restores the thread's saved signal mask if (and only if) one was saved in the env argument by a previous call to sigsetjmp().


WARNING: Don't use longjmp() or siglongjmp() to restore an environment saved by a call to setjmp() or sigsetjmp() in another thread. If you're lucky, your application will crash; if not, it'll look as if it works for a while, until random scribbling on the stack causes it to crash.

Returns:

The same values that longjmp() returns.

Examples:

See longjmp().

Classification:

POSIX 1003.1

Safety:
Cancellation point No
Interrupt handler No
Signal handler Yes
Thread Yes

See also:

longjmp(), pthread_sigmask(), sigaction(), sigprocmask(), sigsuspend()