]> git.stg.codes - stg.git/blobdiff - projects/stargazer/plugins/configuration/sgconfig/stgconfig.cpp
New signal handling infrastructure. Prevent unloading running module.
[stg.git] / projects / stargazer / plugins / configuration / sgconfig / stgconfig.cpp
index f36792ae6e1ecda103d41b4261447babc597543d..3cd6b9010f5ddd46ca5af4bcfe0d814b9271f039 100644 (file)
@@ -123,7 +123,8 @@ for (i = 0; i < 25; i++)
     if (!isRunning)
         break;
 
-    usleep(200000);
+    struct timespec ts = {0, 200000000};
+    nanosleep(&ts, NULL);
     }
 
 //after 5 seconds waiting thread still running. now killing it
@@ -144,6 +145,10 @@ return 0;
 //-----------------------------------------------------------------------------
 void * STG_CONFIG::Run(void * d)
 {
+sigset_t signalSet;
+sigfillset(&signalSet);
+pthread_sigmask(SIG_BLOCK, &signalSet, NULL);
+
 STG_CONFIG * stgConf = (STG_CONFIG *)d;
 stgConf->isRunning = true;