diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | hurd/hurdsig.c | 6 |
2 files changed, 10 insertions, 0 deletions
@@ -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. */ |