]> git.stg.codes - stg.git/blobdiff - projects/stargazer/plugins/other/smux/smux.cpp
Do not use pthread_kill to stop a thread
[stg.git] / projects / stargazer / plugins / other / smux / smux.cpp
index 5367e249b00c739fb548d772f852ae9f6789d8f0..fcc0a9c2349e5afbe070072f3ee9a85beb73f001 100644 (file)
@@ -224,22 +224,10 @@ if (!stopped)
         struct timespec ts = {0, 200000000};
         nanosleep(&ts, NULL);
         }
-
-    //after 5 seconds waiting thread still running. now killing it
-    if (!stopped)
-        {
-        printfd(__FILE__, "SMUX::Stop() - failed to stop thread, killing it\n");
-        if (pthread_kill(thread, SIGINT))
-            {
-            errorStr = "Cannot kill thread.";
-            printfd(__FILE__, "SMUX::Stop() - Cannot kill thread\n");
-            return -1;
-            }
-        printfd(__FILE__, "SMUX::Stop() -  killed Run\n");
-        }
     }
 
-pthread_join(thread, NULL);
+if (stopped)
+    pthread_join(thread, NULL);
 
 ResetNotifiers();
 
@@ -259,6 +247,12 @@ sensors.erase(sensors.begin(), sensors.end());
 
 close(sock);
 
+if (!stopped)
+    {
+    running = true;
+    return -1;
+    }
+
 printfd(__FILE__, "SMUX::Stop() - After\n");
 return 0;
 }