Oops! I forgot the second part of my patch. The problem with SA_NOMASK is
also present in app/main.c:
--- app/main.c~ Mon May 1 19:43:09 2000
+++ app/main.c Tue May 2 17:49:05 2000
@@ -334,15 +334,15 @@
/* Handle some signals */
- gimp_signal_private (SIGHUP, on_signal, SA_RESETHAND | SA_NOMASK);
- gimp_signal_private (SIGINT, on_signal, SA_RESETHAND | SA_NOMASK);
- gimp_signal_private (SIGQUIT, on_signal, SA_RESETHAND | SA_NOMASK);
- gimp_signal_private (SIGABRT, on_signal, SA_RESETHAND | SA_NOMASK);
- gimp_signal_private (SIGBUS, on_signal, SA_RESETHAND | SA_NOMASK);
- gimp_signal_private (SIGSEGV, on_signal, SA_RESETHAND | SA_NOMASK);
- gimp_signal_private (SIGPIPE, on_signal, SA_RESETHAND | SA_NOMASK);
- gimp_signal_private (SIGTERM, on_signal, SA_RESETHAND | SA_NOMASK);
- gimp_signal_private (SIGFPE, on_signal, SA_RESETHAND | SA_NOMASK);
+ gimp_signal_private (SIGHUP, on_signal, SA_RESETHAND | SA_NODEFER);
+ gimp_signal_private (SIGINT, on_signal, SA_RESETHAND | SA_NODEFER);
+ gimp_signal_private (SIGQUIT, on_signal, SA_RESETHAND | SA_NODEFER);
+ gimp_signal_private (SIGABRT, on_signal, SA_RESETHAND | SA_NODEFER);
+ gimp_signal_private (SIGBUS, on_signal, SA_RESETHAND | SA_NODEFER);
+ gimp_signal_private (SIGSEGV, on_signal, SA_RESETHAND | SA_NODEFER);
+ gimp_signal_private (SIGPIPE, on_signal, SA_RESETHAND | SA_NODEFER);
+ gimp_signal_private (SIGTERM, on_signal, SA_RESETHAND | SA_NODEFER);
+ gimp_signal_private (SIGFPE, on_signal, SA_RESETHAND | SA_NODEFER);
#ifndef __EMX__ /* OS/2 may not support SA_NOCLDSTOP -GRO */