]> git.pond.sub.org Git - empserver/blobdiff - src/lib/lwp/sig.c
lwp: Fix handling of sigismember() failure
[empserver] / src / lib / lwp / sig.c
index eb53613146ebbeb3090af03e928fe4d1b6630c70..04fb9f97741dba4d645c893673d3a8aa4e029afe 100644 (file)
@@ -67,10 +67,9 @@ lwpInitSigWait(sigset_t *set)
 
     act.sa_flags = 0;
     act.sa_mask = *set;
-    sigemptyset(&act.sa_mask);
     act.sa_handler = lwpCatchAwaitedSig;
     for (i = 0; i < NSIG; i++) {
-       if (sigismember(set, i))
+       if (sigismember(set, i) > 0)
            sigaction(i, &act, NULL);
     }
 }
@@ -96,7 +95,7 @@ lwpGetSig(sigset_t *set)
 
     sigprocmask(SIG_BLOCK, set, &save);
     for (i = NSIG - 1; i > 0; i--) {
-       if (sigismember(set, i) && sigismember(&LwpSigCaught, i)) {
+       if (sigismember(set, i) > 0 && sigismember(&LwpSigCaught, i) > 0) {
            lwpStatus(LwpCurrent, "Got awaited signal %d", i);
            sigdelset(&LwpSigCaught, i);
            break;