From ec737e4210c2d0dbd9d145468d9b62b1fd5bceb8 Mon Sep 17 00:00:00 2001 From: "Thomas Bushnell, BSG" Date: Mon, 3 Jun 1996 19:57:01 +0000 Subject: (_hurd_internal_post_signal): When turning the action for a HANDLE signal to IGNORE because the signal is blocked, clean up any pending suspension left over from a call to resume. --- hurd/hurdsig.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'hurd') diff --git a/hurd/hurdsig.c b/hurd/hurdsig.c index 710d8d9..ffdc996 100644 --- a/hurd/hurdsig.c +++ b/hurd/hurdsig.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 92, 93, 94, 95, 96 Free Software Foundation, Inc. +/* Copyright (C) 1991, 92, 93, 94, 95, 96, 1996 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -677,6 +677,15 @@ _hurd_internal_post_signal (struct hurd_sigstate *ss, (signo != SIGKILL && _hurd_stopped)) { mark_pending (); + /* If there was a call to resume above in SIGCONT processing + and we've left a thread suspended, now's the time to + set it going. */ + if (act == handle && ss_suspended) + { + err = __thread_resume (ss->thread); + assert_perror (err); + ss_suspended = 0; + } act = ignore; } -- cgit v1.1