diff --git a/src/ChangeLog b/src/ChangeLog index 7324e193ec55aa27fab7823842dc6808c7129993..930a9c0ccc749289a3dfbf3545bef2202c065a09 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +Tue Jun 17 04:20:20 1997 Fredrik Hubinette <hubbe@cytocin.hubbe.net> + + * SIGUSR1 and SIGUSR2 are now masked out on linux systems + with threads. (Because the thread functions use them.) + Tue Jun 10 12:21:07 1997 Henrik Grubbstr�m <grubba@infovav.se> * lib/modules/Process.pmod (exec): Fixed path-handling bug. diff --git a/src/signal_handler.c b/src/signal_handler.c index ff8aba423641ca5c3599ff9164a271d998a50b9c..2ff2103b9ffaa30a5985acc235475bb57991d3e6 100644 --- a/src/signal_handler.c +++ b/src/signal_handler.c @@ -83,15 +83,19 @@ static struct sigdesc signal_desc []={ #ifdef SIGKILL { SIGKILL, "SIGKILL" }, #endif + +#if !defined(__linux__) || !defined(_REENTRANT) #ifdef SIGUSR1 { SIGUSR1, "SIGUSR1" }, #endif -#ifdef SIGSEGV - { SIGSEGV, "SIGSEGV" }, -#endif #ifdef SIGUSR2 { SIGUSR2, "SIGUSR2" }, #endif +#endif + +#ifdef SIGSEGV + { SIGSEGV, "SIGSEGV" }, +#endif #ifdef SIGPIPE { SIGPIPE, "SIGPIPE" }, #endif @@ -316,7 +320,13 @@ static void f_signal(int args) } signum=sp[-args].u.integer; - if(signum <0 || signum >=MAX_SIGNALS) + if(signum <0 || + signum >=MAX_SIGNALS +#if defined(__linux__) && defined(_REENTRANT) + || signum == SIGUSR1 + || signum == SIGUSR2 +#endif + ) { error("Signal out of range.\n"); }