#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>
#endif
#ifdef LISP_FEATURE_SPARC
if ((major_version <2) || (major_version==2 && minor_version < 4)) {
- FSHOW((stderr,"linux kernel %d.%d predates 2.4;\n enabling workarounds for SPARC kernel bugs in signal handling.\n", minor_version));
+ FSHOW((stderr,"linux kernel %d.%d predates 2.4;\n enabling workarounds for SPARC kernel bugs in signal handling.\n", major_version,minor_version));
linux_sparc_siginfo_bug = 1;
}
#endif
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
- */
+ /* 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);
}