diff --git a/ChangeLog b/ChangeLog index 2f5b3edfd5..8175e0b6df 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,7 +1,11 @@ 1998-11-11 Roland McGrath + * 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 67f5bd0fe6..1c1a22932c 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. */