提交 47d2bf51 编写于 作者: R Rich Felker

synccall signal handler need not handle dead threads anymore

they have already blocked signals before decrementing the thread
count, so the code being removed is unreachable in the case where the
thread is no longer counted.
上级 082fb4e9
...@@ -21,15 +21,6 @@ static void handler(int sig, siginfo_t *si, void *ctx) ...@@ -21,15 +21,6 @@ static void handler(int sig, siginfo_t *si, void *ctx)
sigqueue(self->pid, SIGSYNCCALL, (union sigval){0}); sigqueue(self->pid, SIGSYNCCALL, (union sigval){0});
/* Threads which have already decremented themselves from the
* thread count must not act. Block further receipt of signals
* and return. */
if (self->dead) {
memset(&((ucontext_t *)ctx)->uc_sigmask, -1, 8);
errno = old_errno;
return;
}
sem_init(&ch.sem, 0, 0); sem_init(&ch.sem, 0, 0);
sem_init(&ch.sem2, 0, 0); sem_init(&ch.sem2, 0, 0);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册