#endif
int query_only = 0;
int save_handler = 0;
- SCM *scheme_handlers = SCM_VELTS (*signal_handlers);
+
SCM old_handler;
- SCM_VALIDATE_INUM_COPY (1,signum,csig);
+ SCM_VALIDATE_INUM_COPY (1, signum, csig);
#if defined(HAVE_SIGACTION)
#if defined(SA_RESTART) && defined(HAVE_RESTARTABLE_SYSCALLS)
/* don't allow SA_RESTART to be omitted if HAVE_RESTARTABLE_SYSCALLS
#endif
if (!SCM_UNBNDP (flags))
{
- SCM_VALIDATE_INUM (3,flags);
+ SCM_VALIDATE_INUM (3, flags);
action.sa_flags |= SCM_INUM (flags);
}
sigemptyset (&action.sa_mask);
#endif
SCM_DEFER_INTS;
- old_handler = scheme_handlers[csig];
+ old_handler = SCM_VELTS(*signal_handlers)[csig];
if (SCM_UNBNDP (handler))
query_only = 1;
else if (SCM_EQ_P (scm_integer_p (handler), SCM_BOOL_T))
#else
chandler = (SIGRETTYPE (*) (int)) SCM_INUM (handler);
#endif
- scheme_handlers[csig] = SCM_BOOL_F;
+ SCM_VECTOR_SET (*signal_handlers, csig, SCM_BOOL_F);
}
else
SCM_OUT_OF_RANGE (2, handler);
{
action = orig_handlers[csig];
orig_handlers[csig].sa_handler = SIG_ERR;
- scheme_handlers[csig] = SCM_BOOL_F;
+ SCM_VECTOR_SET (*signal_handlers, csig, SCM_BOOL_F);
+
}
#else
if (orig_handlers[csig] == SIG_ERR)
{
chandler = orig_handlers[csig];
orig_handlers[csig] = SIG_ERR;
- scheme_handlers[csig] = SCM_BOOL_F;
+ SCM_VECTOR_SET (*signal_handlers, csig, SCM_BOOL_F);
}
#endif
}
else
{
- SCM_VALIDATE_NIM (2,handler);
+ SCM_VALIDATE_NIM (2, handler);
#ifdef HAVE_SIGACTION
action.sa_handler = take_signal;
if (orig_handlers[csig].sa_handler == SIG_ERR)
if (orig_handlers[csig] == SIG_ERR)
save_handler = 1;
#endif
- scheme_handlers[csig] = handler;
+ SCM_VECTOR_SET (*signal_handlers, csig, handler);
}
/* XXX - Silently ignore setting handlers for `program error signals'
#define FUNC_NAME s_scm_restore_signals
{
int i;
- SCM *scheme_handlers = SCM_VELTS (*signal_handlers);
-
for (i = 0; i < NSIG; i++)
{
#ifdef HAVE_SIGACTION
if (sigaction (i, &orig_handlers[i], NULL) == -1)
SCM_SYSERROR;
orig_handlers[i].sa_handler = SIG_ERR;
- scheme_handlers[i] = SCM_BOOL_F;
+ SCM_VECTOR_SET (*signal_handlers, i, SCM_BOOL_F);
}
#else
if (orig_handlers[i] != SIG_ERR)
if (signal (i, orig_handlers[i]) == SIG_ERR)
SCM_SYSERROR;
orig_handlers[i] = SIG_ERR;
- scheme_handlers[i] = SCM_BOOL_F;
+ SCM_VECTOR_SET (*signal_handlers, i, SCM_BOOL_F);
}
#endif
}
#define FUNC_NAME s_scm_alarm
{
unsigned int j;
- SCM_VALIDATE_INUM (1,i);
+ SCM_VALIDATE_INUM (1, i);
j = alarm (SCM_INUM (i));
return SCM_MAKINUM (j);
}
#define FUNC_NAME s_scm_sleep
{
unsigned long j;
- SCM_VALIDATE_INUM_MIN (1,i,0);
+ SCM_VALIDATE_INUM_MIN (1, i,0);
#ifdef USE_THREADS
j = scm_thread_sleep (SCM_INUM(i));
#else
"all platforms.")
#define FUNC_NAME s_scm_usleep
{
- SCM_VALIDATE_INUM_MIN (1,i,0);
+ SCM_VALIDATE_INUM_MIN (1, i,0);
#ifdef USE_THREADS
/* If we have threads, we use the thread system's sleep function. */
"@var{sig} is as described for the kill procedure.")
#define FUNC_NAME s_scm_raise
{
- SCM_VALIDATE_INUM (1,sig);
+ SCM_VALIDATE_INUM (1, sig);
SCM_DEFER_INTS;
if (kill (getpid (), (int) SCM_INUM (sig)) != 0)
SCM_SYSERROR;