]> git.stg.codes - stg.git/blobdiff - projects/rscriptd/listener.cpp
Block all signals in threads other than main
[stg.git] / projects / rscriptd / listener.cpp
index d4f2dc937b56401519bca2dbdeffb546cf450639..730426744e50508556802c06d7bddcb81be91022 100644 (file)
@@ -165,6 +165,10 @@ return false;
 //-----------------------------------------------------------------------------
 void * LISTENER::Run(void * d)
 {
+sigset_t signalSet;
+sigfillset(&signalSet);
+pthread_sigmask(SIG_BLOCK, &signalSet, NULL);
+
 LISTENER * listener = static_cast<LISTENER *>(d);
 
 listener->Runner();
@@ -186,6 +190,10 @@ receiverStopped = true;
 //-----------------------------------------------------------------------------
 void * LISTENER::RunProcessor(void * d)
 {
+sigset_t signalSet;
+sigfillset(&signalSet);
+pthread_sigmask(SIG_BLOCK, &signalSet, NULL);
+
 LISTENER * listener = static_cast<LISTENER *>(d);
 
 listener->ProcessorRunner();