From: Ben Gras Date: Mon, 12 Dec 2005 13:11:22 +0000 (+0000) Subject: SIGSTOP can't be masked (report by Jaap Weel). X-Git-Tag: v3.1.2a~477 X-Git-Url: http://zhaoyanbai.com/repos/readme1st.txt?a=commitdiff_plain;h=2f239512210d12cdcd23faba7efa409f411c9909;p=minix.git SIGSTOP can't be masked (report by Jaap Weel). --- diff --git a/servers/pm/signal.c b/servers/pm/signal.c index dee78d546..6765d4735 100644 --- a/servers/pm/signal.c +++ b/servers/pm/signal.c @@ -113,6 +113,8 @@ PUBLIC int do_sigprocmask() * * The library interface must set SIG_INQUIRE if the 'act' argument * is NULL. + * + * KILL and STOP can't be masked. */ int i; @@ -122,6 +124,7 @@ PUBLIC int do_sigprocmask() switch (m_in.sig_how) { case SIG_BLOCK: sigdelset((sigset_t *)&m_in.sig_set, SIGKILL); + sigdelset((sigset_t *)&m_in.sig_set, SIGSTOP); for (i = 1; i <= _NSIG; i++) { if (sigismember((sigset_t *)&m_in.sig_set, i)) sigaddset(&mp->mp_sigmask, i); @@ -138,6 +141,7 @@ PUBLIC int do_sigprocmask() case SIG_SETMASK: sigdelset((sigset_t *) &m_in.sig_set, SIGKILL); + sigdelset((sigset_t *) &m_in.sig_set, SIGSTOP); mp->mp_sigmask = (sigset_t) m_in.sig_set; check_pending(mp); break;