* src/threads/posix/thread-posix.cpp (signal.h): Removed.
(vm/signallocal.h): Added.
(threads_thread_interrupt): Removed __SIGRTMAX stuff from OpenJDK and
always use Signal_THREAD_INTERRUPT.
* src/vm/signal.c (signal_init): Use Signal_THREAD_INTERRUPT instead
of SIGHUP.
* src/vm/signallocal.h (Signal_THREAD_INTERRUPT): Added.
#include <assert.h>
#include <sys/types.h>
#include <unistd.h>
-#include <signal.h>
#include <sys/time.h>
#include <time.h>
#include <errno.h>
#include "vm/builtin.h"
#include "vm/exceptions.hpp"
#include "vm/global.h"
+#include "vm/signallocal.h"
#include "vm/string.hpp"
#include "vm/vm.hpp"
void threads_thread_interrupt(threadobject *t)
{
-#if defined(__LINUX__) && defined(WITH_JAVA_RUNTIME_LIBRARY_OPENJDK)
- /* See openjdk/jdk/src/solaris/native/java/net/linux_close.c, "sigWakeup" */
- int sig = (__SIGRTMAX - 2);
-#else
- int sig = SIGHUP;
-#endif
/* Signal the thread a "waitcond" and tell it that it has been
interrupted. */
/* Interrupt blocking system call using a signal. */
- pthread_kill(t->tid, sig);
+ pthread_kill(t->tid, Signal_THREAD_INTERRUPT);
t->waitcond->signal();
#if defined(ENABLE_THREADS)
/* SIGHUP handler for threads_thread_interrupt */
- signal_register_signal(SIGHUP, (functionptr) signal_handler_sighup, 0);
+ signal_register_signal(Signal_THREAD_INTERRUPT, (functionptr) signal_handler_sighup, 0);
#endif
#if defined(ENABLE_THREADS) && defined(ENABLE_GC_CACAO)
#include "vm/global.h"
+// Signal defines.
+
+#define Signal_THREAD_INTERRUPT SIGHUP
+
+
/* function prototypes ********************************************************/
bool signal_init(void);