#include "globals.h"
#include "lispregs.h"
#include "validate.h"
-#include "monitor.h"
#include "gc.h"
#include "alloc.h"
#include "dynbind.h"
#endif
}
+void
+block_deferrable_signals(void)
+{
+#ifndef LISP_FEATURE_WIN32
+ thread_sigmask(SIG_BLOCK, &deferrable_sigset, 0);
+#endif
+}
+
\f
/*
* utility routines used by various signal handlers
else{
void *badaddr=arch_get_bad_addr(signal,info,context);
return (badaddr >= (void *)current_auto_gc_trigger &&
- badaddr <((void *)current_dynamic_space + DYNAMIC_SPACE_SIZE));
+ badaddr <((void *)current_dynamic_space + dynamic_space_size));
}
}
#endif
sigset_t empty, current;
int i;
sigemptyset(&empty);
- sigprocmask(SIG_BLOCK, &empty, ¤t);
+ thread_sigmask(SIG_BLOCK, &empty, ¤t);
/* There should be exactly two blocked signals: the two we added
* to sa_mask when setting up the handler. NetBSD doesn't block
* the signal we're handling when SA_NODEFER is set; Linux before
{
sigset_t empty;
sigemptyset(&empty);
- sigprocmask(SIG_SETMASK, &empty, 0);
+ thread_sigmask(SIG_SETMASK, &empty, 0);
}
kill(getpid(), SA_NODEFER_TEST_KILL_SIGNAL);
while (sigaction_nodefer_works == -1);
SHOW("returning from interrupt_init()");
#endif
}
+
+#ifndef LISP_FEATURE_WIN32
+int
+siginfo_code(siginfo_t *info)
+{
+ return info->si_code;
+}
+#endif