#include <stdio.h>
#include <sys/param.h>
#include <sys/file.h>
+#include "sbcl.h"
#include "./signal.h"
#include "os.h"
#include "arch.h"
#include "globals.h"
+#include "sbcl.h"
#include "interrupt.h"
#include "interr.h"
#include "lispregs.h"
-#include "sbcl.h"
#include <sys/socket.h>
#include <sys/utsname.h>
void sigcont_handler(int signal, siginfo_t *info, void *void_context)
{
- /* we need to have a handler installed for this signal so that
- * sigwaitinfo() for it actually returns at the appropriate time
- */
- fprintf(stderr, "Thread %d received stray SIGCONT\n",
- arch_os_get_current_thread()->pid);
+ /* We need to have a handler installed for this signal so that
+ * sigwaitinfo() for it actually returns at the appropriate time.
+ * We don't need it to actually do anything. This mkes it
+ * possibly the only signal handler in SBCL that doesn't depend on
+ * not-guaranteed-by-POSIX features
+ */
}
void
{
undoably_install_low_level_interrupt_handler(SIG_MEMORY_FAULT,
sigsegv_handler);
+#ifdef LISP_FEATURE_SB_THREAD
undoably_install_low_level_interrupt_handler(SIG_INTERRUPT_THREAD,
handle_rt_signal);
+ undoably_install_low_level_interrupt_handler(SIG_STOP_FOR_GC,
+ sig_stop_for_gc_handler);
+#endif
undoably_install_low_level_interrupt_handler(SIGCONT,
sigcont_handler);
}