diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2018-12-27 21:17:44 +0000 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2018-12-27 21:17:44 +0000 |
commit | 5a828dd8b0da118e958e5e7f9834ed419e0a7255 (patch) | |
tree | 53810c90d093cac1bf648572d81860611302772b | |
parent | ad19c620767174a56d7b25615d3a54b7486f1cca (diff) |
fix merge
-rw-r--r-- | hurd/hurdsig.c | 49 |
1 files changed, 0 insertions, 49 deletions
diff --git a/hurd/hurdsig.c b/hurd/hurdsig.c index 2f16ad5482..7bc4bc97aa 100644 --- a/hurd/hurdsig.c +++ b/hurd/hurdsig.c @@ -1237,55 +1237,6 @@ _hurd_internal_post_signal (struct hurd_sigstate *ss, ss = post_signal (ss, signo, detail, untraced, reply); if (! ss) return; - /* No pending signals left undelivered for this thread. - If we were sent signal 0, we need to check for pending - signals for all threads. */ - if (signo == 0) - { - __spin_unlock (&ss->lock); - __mutex_lock (&_hurd_siglock); - for (ss = _hurd_sigstates; ss != NULL; ss = ss->next) - { - __spin_lock (&ss->lock); - for (signo = 1; signo < NSIG; ++signo) - if (__sigismember (&ss->pending, signo) - && (!__sigismember (&ss->blocked, signo) - /* We "deliver" immediately pending blocked signals whose - action might be to ignore, so that if ignored they are - dropped right away. */ - || ss->actions[signo].sa_handler == SIG_IGN - || ss->actions[signo].sa_handler == SIG_DFL)) - { - __mutex_unlock (&_hurd_siglock); - goto deliver_pending; - } - __spin_unlock (&ss->lock); - } - __mutex_unlock (&_hurd_siglock); - } - else - { - /* No more signals pending; SS->lock is still locked. - Wake up any sigsuspend call that is blocking SS->thread. */ - if (ss->suspended != MACH_PORT_NULL) - { - /* There is a sigsuspend waiting. Tell it to wake up. */ - error_t err; - mach_msg_header_t msg; - msg.msgh_bits = MACH_MSGH_BITS (MACH_MSG_TYPE_MAKE_SEND, 0); - msg.msgh_remote_port = ss->suspended; - msg.msgh_local_port = MACH_PORT_NULL; - /* These values do not matter. */ - msg.msgh_id = 8675309; /* Jenny, Jenny. */ - ss->suspended = MACH_PORT_NULL; - err = __mach_msg (&msg, MACH_SEND_MSG, sizeof msg, 0, - MACH_PORT_NULL, MACH_MSG_TIMEOUT_NONE, - MACH_PORT_NULL); - assert_perror (err); - } - __spin_unlock (&ss->lock); - } - } /* The signal was neither fatal nor traced. We still hold SS->lock. */ if (signo != 0 && ss->thread != MACH_PORT_NULL) |