* hurd/hurdsig.c (_hurdsig_init): Add assertion that no pending,
authorRoland McGrath <roland@gnu.org>
Wed, 11 Nov 1998 11:28:20 +0000 (11:28 +0000)
committerRoland McGrath <roland@gnu.org>
Wed, 11 Nov 1998 11:28:20 +0000 (11:28 +0000)
unblocked signals are set in the startup masks.

ChangeLog
hurd/hurdsig.c

index 2f5b3ed..8175e0b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,7 +1,11 @@
 1998-11-11  Roland McGrath  <roland@baalperazim.frob.com>
 
+       * hurd/hurdsig.c (_hurdsig_init): Add assertion that no pending,
+       unblocked signals are set in the startup masks.
+
        * hurd/hurdsig.c (_hurdsig_init): Take new args, INTARRAY and
        INTARRAYSIZE.  Initialize main thread's sigstate from INIT_SIG* ints.
+
        * hurd/hurd/signal.h: Update _hurdsig_init decl.
        * hurd/hurdinit.c (_hurd_proc_init): Take new args, INTARRAY and
        INTARRAYSIZE, pass them down to _hurdsig_init.
index 67f5bd0..1c1a229 100644 (file)
@@ -1236,6 +1236,12 @@ _hurdsig_init (const int *intarray, size_t intarraysize)
   /* Receive exceptions on the signal port.  */
   __task_set_special_port (__mach_task_self (),
                           TASK_EXCEPTION_PORT, _hurd_msgport);
+
+  /* Sanity check.  Any pending, unblocked signals should have been
+     taken by our predecessor incarnation (i.e. parent or pre-exec state)
+     before packing up our init ints.  This assert is last (not above)
+     so that signal handling is all set up to handle the abort.  */
+  assert ((ss->pending &~ ss->blocked) == 0);
 }
 \f                              /* XXXX */
 /* Reauthenticate with the proc server.  */