Bruno Haible <bruno <at> clisp.org> writes: > > This module adds a sigprocmask() emulation based on signal(). > > Comments are welcome, as this is new and so far untested code. > > + > + for (sig = 0; sig < NSIG; sig++) > + if (received[NSIG]) > + { > + #if HAVE_RAISE > + raise (sig); > + #else > + kill (getpid (), sig); > + #endif > + } > + }
Oops, on mingw, that typo made the process randomly abort during unblock_fatal_signals() because it was dereferencing beyond the array and raising an unknown signal number. Checking in this obvious patch: 2006-10-17 Eric Blake <[EMAIL PROTECTED]> * lib/sigprocmask.c (sigprocmask): Fix typo. Index: lib/sigprocmask.c =================================================================== RCS file: /sources/gnulib/gnulib/lib/sigprocmask.c,v retrieving revision 1.1 diff -u -r1.1 sigprocmask.c --- lib/sigprocmask.c 16 Oct 2006 11:55:35 -0000 1.1 +++ lib/sigprocmask.c 17 Oct 2006 15:24:31 -0000 @@ -178,7 +178,7 @@ received[sig] = 0; for (sig = 0; sig < NSIG; sig++) - if (received[NSIG]) + if (received[sig]) { #if HAVE_RAISE raise (sig);