1.0.25.46: restore errno in signal handlers
[sbcl.git] / src / runtime / linux-os.c
index 4a3f994..d273b13 100644 (file)
@@ -89,7 +89,6 @@ futex_wait(int *lock_word, int oldval, long sec, unsigned long usec)
   struct timespec timeout;
   int t;
 
- again:
   if (sec<0) {
     t = sys_futex(lock_word,FUTEX_WAIT,oldval, 0);
   }
@@ -103,8 +102,7 @@ futex_wait(int *lock_word, int oldval, long sec, unsigned long usec)
   else if (errno==ETIMEDOUT)
       return 1;
   else if (errno==EINTR)
-      /* spurious wakeup from interrupt */
-      goto again;
+      return 2;
   else
       /* EWOULDBLOCK and others, need to check the lock */
       return -1;
@@ -418,8 +416,6 @@ os_install_interrupt_handlers(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,
-                                                 interrupt_thread_handler);
     undoably_install_low_level_interrupt_handler(SIG_STOP_FOR_GC,
                                                  sig_stop_for_gc_handler);
 #endif