(in scm.c) initializes handlers for
SIGALRMif they are supported by the C implementation. All of the signal handlers immediately reestablish themselves by a call to
The low level handlers for
If an interrupt handler is defined when the interrupt is received, the
code is interpreted. If the code returns, execution resumes from where
the interrupt happened.
the stack to be saved and restored.
SCM does not use any signal masking system calls. These are not a
portable feature. However, code can run uninterrupted by use of the C
sets the global variable
ints_disabledto 1. If an interrupt occurs during a time when
ints_disabledis 1, then
deferred_procis set to non-zero, one of the global variables
SIGALRM_deferredis set to 1, and the handler returns. — Macro: ALLOW_INTS
Checks the deferred variables and if set the appropriate handler is called.
DEFER_INTScan not be nested. An
ALLOW_INTSmust happen before another
DEFER_INTScan be done. In order to check that this constraint is satisfied
#define CAREFUL_INTSin scmfig.h.