|
|
@@ -33,6 +33,7 @@
|
|
|
#include <errno.h>
|
|
|
#include <fcntl.h>
|
|
|
#include <string.h>
|
|
|
+#include <signal.h>
|
|
|
|
|
|
#ifdef BADVPN_USE_SIGNALFD
|
|
|
#include <sys/signalfd.h>
|
|
|
@@ -189,8 +190,8 @@ int BUnixSignal_Init (BUnixSignal *o, BReactor *reactor, sigset_t signals, BUnix
|
|
|
BReactor_SetFileDescriptorEvents(o->reactor, &o->signalfd_bfd, BREACTOR_READ);
|
|
|
|
|
|
// block signals
|
|
|
- if (sigprocmask(SIG_BLOCK, &o->signals, 0) < 0) {
|
|
|
- BLog(BLOG_ERROR, "sigprocmask block failed");
|
|
|
+ if (pthread_sigmask(SIG_BLOCK, &o->signals, 0) != 0) {
|
|
|
+ BLog(BLOG_ERROR, "pthread_sigmask block failed");
|
|
|
goto fail2;
|
|
|
}
|
|
|
|
|
|
@@ -230,8 +231,8 @@ int BUnixSignal_Init (BUnixSignal *o, BReactor *reactor, sigset_t signals, BUnix
|
|
|
}
|
|
|
|
|
|
// block signals
|
|
|
- if (sigprocmask(SIG_BLOCK, &o->signals, 0) < 0) {
|
|
|
- BLog(BLOG_ERROR, "sigprocmask block failed");
|
|
|
+ if (pthread_sigmask(SIG_BLOCK, &o->signals, 0) != 0) {
|
|
|
+ BLog(BLOG_ERROR, "pthread_sigmask block failed");
|
|
|
goto fail2;
|
|
|
}
|
|
|
|
|
|
@@ -355,7 +356,7 @@ void BUnixSignal_Free (BUnixSignal *o, int unblock)
|
|
|
|
|
|
if (unblock) {
|
|
|
// unblock signals
|
|
|
- ASSERT_FORCE(sigprocmask(SIG_UNBLOCK, &o->signals, 0) == 0)
|
|
|
+ ASSERT_FORCE(pthread_sigmask(SIG_UNBLOCK, &o->signals, 0) == 0)
|
|
|
}
|
|
|
|
|
|
// free signalfd BFileDescriptor
|
|
|
@@ -370,7 +371,7 @@ void BUnixSignal_Free (BUnixSignal *o, int unblock)
|
|
|
|
|
|
if (unblock) {
|
|
|
// unblock signals
|
|
|
- ASSERT_FORCE(sigprocmask(SIG_UNBLOCK, &o->signals, 0) == 0)
|
|
|
+ ASSERT_FORCE(pthread_sigmask(SIG_UNBLOCK, &o->signals, 0) == 0)
|
|
|
}
|
|
|
|
|
|
// free kevents
|
|
|
@@ -388,8 +389,8 @@ void BUnixSignal_Free (BUnixSignal *o, int unblock)
|
|
|
|
|
|
if (!unblock) {
|
|
|
// block signals
|
|
|
- if (sigprocmask(SIG_BLOCK, &o->signals, 0) < 0) {
|
|
|
- BLog(BLOG_ERROR, "sigprocmask block failed");
|
|
|
+ if (pthread_sigmask(SIG_BLOCK, &o->signals, 0) != 0) {
|
|
|
+ BLog(BLOG_ERROR, "pthread_sigmask block failed");
|
|
|
}
|
|
|
}
|
|
|
|