Use pthread_sigmask() instead of sigprocmask() when pthreads
authorLasse Collin <lasse.collin@tukaani.org>
Wed, 7 Jan 2009 16:41:15 +0000 (18:41 +0200)
committerLasse Collin <lasse.collin@tukaani.org>
Wed, 7 Jan 2009 16:41:15 +0000 (18:41 +0200)
are enabled.

src/common/mythread.h
src/xz/main.c
src/xz/private.h

index cd9ae89..ee8a341 100644 (file)
@@ -20,6 +20,9 @@
                pthread_once(&once_, &func); \
        } while (0)
 
+#      define mythread_sigmask(how, set, oset) \
+               pthread_sigmask(how, set, oset)
+
 #else
 
 #      define mythread_once(func) \
@@ -31,4 +34,7 @@
                } \
        } while (0)
 
+#      define mythread_sigmask(how, set, oset) \
+               sigprocmask(how, set, oset)
+
 #endif
index 23a2de1..a3d1101 100644 (file)
@@ -109,7 +109,7 @@ signals_block(void)
 {
        if (signals_block_count++ == 0) {
                const int saved_errno = errno;
-               sigprocmask(SIG_BLOCK, &hooked_signals, NULL);
+               mythread_sigmask(SIG_BLOCK, &hooked_signals, NULL);
                errno = saved_errno;
        }
 
@@ -124,7 +124,7 @@ signals_unblock(void)
 
        if (--signals_block_count == 0) {
                const int saved_errno = errno;
-               sigprocmask(SIG_UNBLOCK, &hooked_signals, NULL);
+               mythread_sigmask(SIG_UNBLOCK, &hooked_signals, NULL);
                errno = saved_errno;
        }
 
index b463a08..9f0c52c 100644 (file)
@@ -21,6 +21,7 @@
 #define PRIVATE_H
 
 #include "sysdefs.h"
+#include "mythread.h"
 
 #include <sys/types.h>
 #include <sys/stat.h>