Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ siglongjmp(3) — sys5 — Apollo Domain/OS SR10.4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

longjmp(3C)

setjmp(3C)

sigprocmask(2)

sigsetjmp(3)

sigsuspend(2)

SIGLONGJMP(3)                        SysV                        SIGLONGJMP(3)



NAME
     siglongjmp - nonlocal goto with signal handling

SYNOPSIS
     #include <setjmp.h>

     void siglongjmp (env, value)
     sigjmp_buf env;
     int value;

DESCRIPTION
     The siglongjmp function restores the environment saved by the most recent
     sigsetjmp(3) function in the same process with the corresponding
     sigjmp_buf argument.  The env argument specifies an address for a
     sigjmp_buf structure and the value argument specifies any nonzero value.

     If there is no such invocation or if the function containing the
     invocation of the sigsetjmp macro has terminated execution in the
     interim, the behavior is undefined.

     All accessible objects have values as of the time siglongjmp was called,
     except that the values of objects of automatic storage duration that have
     been changed between the sigsetjmp(3) call and siglongjmp call are
     indeterminate.

     As it bypasses the usual function call and return mechanisms, the
     siglongjmp function executes correctly in contexts of interrupts,
     signals, and any of their associated functions.  However, if the
     siglongjmp function is invoked from a nested signal handler (that is,
     from a function invoked as a result of a signal raised during the
     handling of another signal), the behavior is undefined.

     The siglongjmp function restores the saved signal mask if and only if the
     env argument was initialized by a call to the sigsetjmp(3) function with
     a nonzero savemask argument.

DIAGNOSTICS
     After siglongjmp completes, program execution continues as if the
     corresponding call of the sigsetjmp(3) function had just returned the
     value specified by the value argument.  The siglongjmp function cannot
     cause sigsetjmp(3) to return 0 (zero); if value is 0, the sigsetjmp(3)
     function returns 1.

SEE ALSO
     longjmp(3C), setjmp(3C), sigprocmask(2), sigsetjmp(3), sigsuspend(2)
     <setjmp.h>

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026