aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--hurd/hurdsig.c6
2 files changed, 10 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 2f5b3ed..8175e0b 100644
--- 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.
diff --git a/hurd/hurdsig.c b/hurd/hurdsig.c
index 67f5bd0..1c1a229 100644
--- a/hurd/hurdsig.c
+++ b/hurd/hurdsig.c
@@ -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);
}
/* XXXX */
/* Reauthenticate with the proc server. */