]> git.stg.codes - stg.git/blobdiff - projects/stargazer/eventloop.cpp
Merge remote-tracking branch 'origin/master' into ticket
[stg.git] / projects / stargazer / eventloop.cpp
index 1d1a209d9bc9e574bcac360d2a8b4d95e4fb8838..36a77e9e21929c26e19e3ad9ecea86559eed0a1e 100644 (file)
@@ -1,3 +1,4 @@
+#include <csignal>
 #include <cerrno>
 #include <cstring>
 
@@ -6,7 +7,12 @@
 #include "eventloop.h"
 
 EVENT_LOOP::EVENT_LOOP()
-    : ACTIONS_LIST()
+    : ACTIONS_LIST(),
+      _running(false),
+      _stopped(true),
+      _tid(),
+      _mutex(),
+      _condition()
 {
 pthread_mutex_init(&_mutex, NULL);
 pthread_cond_init(&_condition, NULL);
@@ -48,12 +54,16 @@ return NULL;
 
 void EVENT_LOOP::Runner()
 {
+sigset_t signalSet;
+sigfillset(&signalSet);
+pthread_sigmask(SIG_BLOCK, &signalSet, NULL);
+
 _stopped = false;
 printfd(__FILE__, "EVENT_LOOP::Runner - Before start\n");
 while (_running)
     {
         {
-        STG_LOCKER lock(&_mutex, __FILE__, __LINE__);
+        STG_LOCKER lock(&_mutex);
         // Check for any actions...
         if (empty())
             {
@@ -91,7 +101,7 @@ EVENT_LOOP & EVENT_LOOP_SINGLETON::GetInstance()
 // Double-checking technique
 if (!_instance)
     {
-    STG_LOCKER lock(&singletonMutex, __FILE__, __LINE__);
+    STG_LOCKER lock(&singletonMutex);
     if (!_instance)
         {
         CreateInstance();