Guardian Procedure Calls Reference Manual
mask
input
INT(32):value
specifies whether the current signal mask is also saved in the jump buffer indicated by env:
specifies that the current signal mask is not to be saved.0D
specifies that the current signal mask is to be saved. This mask is reinstated by a corresponding call to
the SIGLONGJMP_ procedure.
< >0D
Returned Value
INT(32)
Outcome of the call:
SIGSETJMP_ procedure was called directly.0D
SIGSETJMP_ is returning as a result of a call to the SIGLONGJMP_ procedure. The returned value is specified
by SIGLONGJMP_.
< >0D
Considerations
• SIGSETJMP_ is the TAL or pTAL procedure name for the C sigsetjmp() function. The C
sigsetjmp() function conforms to the POSIX.1 standard.
• You can allocate the jump buffer for SIGSETJMP_ using the SIGJMP_BUF_DEF DEFINE as
follows:
SIGJMP_BUF_DEF ( env )
where env is a valid variable name.
Alternatively, you can allocate the buffer by declaring a structure of type
SIGJMP_BUF_TEMPLATE.
In either case, the buffer must be accessible to both the SIGSETJMP_ procedure call and the
associated SIGLONGJMP_ procedure call.
• The jump buffer saved by SIGSETJMP_ is normally used by a call to the SIGLONGJMP_
procedure. The jump buffer can be used by a call to the LONGJMP_ procedure only if the
signal mask is not saved.
• The buffer pointer is assumed to be valid. An invalid address passed to SISETJMP_ will cause
unpredictable results and could cause the system to deliver a nondeferrable signal to the
process.
• Do not change the contents of the jump buffer. The results of a corresponding SIGLONGJMP_
call are undefined if the contents of the jump buffer are changed.
Example
sigjmp_buf env;
SIGJMP_BUF_DEF_ ( env );
retval := SIGSETJMP_ ( env, value );
Related Programming Manual
For programming information about the SIGSETJMP_ procedure, see the Guardian Programmer's
Guide.
1386 Guardian Procedure Calls (S)