diff options
author | Thomas Bushnell, BSG <thomas@gnu.org> | 1996-06-03 19:57:01 +0000 |
---|---|---|
committer | Thomas Bushnell, BSG <thomas@gnu.org> | 1996-06-03 19:57:01 +0000 |
commit | ec737e4210c2d0dbd9d145468d9b62b1fd5bceb8 (patch) | |
tree | ceba3b1f4024207cf90d25a7313c480db61a429a | |
parent | b687dfbdca5d78f61c401a810373b1bf818c031c (diff) | |
download | glibc-ec737e4210c2d0dbd9d145468d9b62b1fd5bceb8.tar.gz glibc-ec737e4210c2d0dbd9d145468d9b62b1fd5bceb8.tar.xz glibc-ec737e4210c2d0dbd9d145468d9b62b1fd5bceb8.zip |
(_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.
-rw-r--r-- | hurd/hurdsig.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/hurd/hurdsig.c b/hurd/hurdsig.c index 710d8d915a..ffdc996c0f 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; } |