X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fpthread-futex.c;h=cddcda9ec9e866617133a7870f8c3e822c039776;hb=ed1910efb36f71b5ebe33b5ffffd7195e15644de;hp=a08eb80e0abd962c042f31c993f329cfa22b1aa2;hpb=4c011cd8892fea4fcdf335531fb24473089fe41d;p=sbcl.git diff --git a/src/runtime/pthread-futex.c b/src/runtime/pthread-futex.c index a08eb80..cddcda9 100644 --- a/src/runtime/pthread-futex.c +++ b/src/runtime/pthread-futex.c @@ -227,12 +227,9 @@ futex_wait(int *lock_word, int oldval, long sec, unsigned long usec) { int ret, result; struct futex *futex; - sigset_t oldset, newset; + sigset_t oldset; struct timeval tv, *timeout; - sigemptyset(&newset); - sigaddset_deferrable(&newset); - again: if (sec < 0) timeout = NULL; @@ -245,7 +242,7 @@ again: timeout = &tv; } - pthread_sigmask(SIG_BLOCK, &newset, &oldset); + block_deferrable_signals(0, &oldset); futex = futex_get(lock_word); @@ -311,12 +308,9 @@ futex_wake(int *lock_word, int n) { int ret; struct futex *futex; - sigset_t newset, oldset; - - sigemptyset(&newset); - sigaddset_deferrable(&newset); + sigset_t oldset; - pthread_sigmask(SIG_BLOCK, &newset, &oldset); + block_deferrable_signals(0, &oldset); futex = futex_get(lock_word);