Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ sigsetjmp(3C) — Amiga System V Release 4 Version 1.1

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

getcontext(2)

priocntl(2)

sigaction(2)

sigaltstack(2)

sigprocmask(2)

setjmp(3C)

sigsetjmp(3C)



sigsetjmp(3C)        COMPATIBILITY FUNCTIONS        sigsetjmp(3C)



NAME
     sigsetjmp, siglongjmp - a non-local goto with signal state

SYNOPSIS
     #include <setjmp.h>

     int sigsetjmp (sigjmpbuf env, int savemask);

     void siglongjmp (sigjmpbuf env, int val);

DESCRIPTION
     These functions are  useful  for  dealing  with  errors  and
     interrupts  encountered  in a low-level subroutine of a pro-
     gram.

     sigsetjmp saves the calling process's  registers  and  stack
     environment   [see   sigaltstack(2)]  in  env  (whose  type,
     sigjmpbuf, is defined in the <setjmp.h>  header  file)  for
     later  use  by siglongjmp. If savemask is non-zero, the cal-
     ling process's signal mask [see sigprocmask(2)] and schedul-
     ing  parameters  [see priocntl(2)] are also saved. sigsetjmp
     returns the value 0.

     siglongjmp restores the environment saved by the  last  call
     of  sigsetjmp  with  the  corresponding env argument.  After
     siglongjmp is completed, program execution continues  as  if
     the  corresponding  call  of sigsetjmp had just returned the
     value val.  siglongjmp cannot cause sigsetjmp to return  the
     value zero.  If siglongjmp is invoked with a second argument
     of zero, sigsetjmp will return 1.  At the time of the second
     return  from  sigsetjmp,  all  external and static variables
     have values as of the time siglongjmp is called. The  values
     of register and automatic variables are undefined.  Register
     or automatic variables whose value must be relied upon  must
     be declared as volatile.

     If a signal-catching function  interrupts  sleep  and  calls
     siglongjmp  to  restore  an  environment  saved prior to the
     sleep call, the action associated with SIGALRM and  time  it
     is  scheduled  to  be  generated are unspecified. It is also
     unspecified whether the SIGALRM signal  is  blocked,  unless
     the  process's  signal  mask  is  restored  as  part  of the
     environment.  The function  siglongjmp  restores  the  saved
     signal  mask if and only if the env argument was initialized
     by a call to the sigsetjmp function with a non-zero savemask
     argument.

SEE ALSO
     getcontext(2),  priocntl(2),  sigaction(2),  sigaltstack(2),
     sigprocmask(2), setjmp(3C).





                          Last change:                          1





sigsetjmp(3C)        COMPATIBILITY FUNCTIONS        sigsetjmp(3C)



NOTES
     If siglongjmp is called even though env was never primed  by
     a  call  to  sigsetjmp,  or when the last such call was in a
     function  that  has  since  returned,  absolute   chaos   is
     guaranteed.


















































                          Last change:                          2



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