Signal_INTERRUPT_SYSTEM_CALL and defined to (__SIGRTMAX - 2) for
Linux. We will ses what OpenJDK wants on other OSes, like BSD.
* src/vm/signal.c (signal_init): Use new define name.
(signal_thread_handler) [!WITH_JAVA_RUNTIME_LIBRARY_OPENJDK]: Added
default case and abort.
* src/threads/posix/thread-posix.cpp (threads_thread_interrupt): Use
new define name.
/* Interrupt blocking system call using a signal. */
- pthread_kill(t->tid, Signal_THREAD_INTERRUPT);
+ pthread_kill(t->tid, Signal_INTERRUPT_SYSTEM_CALL);
t->waitcond->signal();
#if defined(ENABLE_THREADS)
/* SIGHUP handler for threads_thread_interrupt */
- signal_register_signal(Signal_THREAD_INTERRUPT, (functionptr) signal_handler_sighup, 0);
+ signal_register_signal(Signal_INTERRUPT_SYSTEM_CALL, (functionptr) signal_handler_sighup, 0);
#endif
#if defined(ENABLE_THREADS) && defined(ENABLE_GC_CACAO)
}
break;
}
+#else
+ default:
+ vm_abort("signal_thread_handler: Unknown signal %d", sig);
#endif
}
}
// Signal defines.
-#define Signal_THREAD_INTERRUPT SIGHUP
+#if defined(__LINUX__)
+// See openjdk/jdk/src/solaris/native/java/net/linux_close.c (sigWakeup)
+// See openjdk/jdk/src/solaris/native/sun/nio/ch/NativeThread.c (INTERRUPT_SIGNAL)
+# define Signal_INTERRUPT_SYSTEM_CALL (__SIGRTMAX - 2)
+#else
+# define Signal_INTERRUPT_SYSTEM_CALL SIGHUP
+#endif
/* function prototypes ********************************************************/