]> git.stg.codes - stg.git/commitdiff
Change some usleep() to nanosleep() `cause usleep() is obsolete since
authorMaxim Mamontov <faust.madf@gmail.com>
Tue, 22 Mar 2011 15:01:42 +0000 (17:01 +0200)
committerMaxim Mamontov <faust.madf@gmail.com>
Tue, 22 Mar 2011 15:01:42 +0000 (17:01 +0200)
POSIX.2001

projects/stargazer/main.cpp
projects/stargazer/stg_timer.cpp
projects/stargazer/traffcounter.cpp
projects/stargazer/users_impl.cpp

index 63d5a6b09454f422c4d91253c2ca469b03670276..2c789ff64877e3ac19cf376a5842df8f7ec63637 100644 (file)
@@ -386,6 +386,7 @@ switch (stgChildPid)
         break;
 
     default:
+        struct timespec ts = {0, 200000000};
         for (int i = 0; i < 120 * 5; i++)
             {
             if (access(startFile.c_str(), F_OK) == 0)
@@ -399,7 +400,7 @@ switch (stgChildPid)
                 unlink(startFile.c_str());
                 exit(1);
                 }
-            usleep(200000);
+            nanosleep(&ts, NULL);
             }
         unlink(startFile.c_str());
         exit(1);
index 7903c38d70dfd825b30672ed4ce447c92d629a1a..b17153cf6eed25af3bbcd54788db52a7d2e9a2b8 100644 (file)
@@ -1,6 +1,6 @@
-#include <unistd.h>
 #include <pthread.h>
 
+#include <ctime>
 #include <cstring>
 
 #include "common.h"
@@ -61,11 +61,15 @@ isTimerRunning = true;
 while (nonstop)
     {
     #ifdef STG_TIMER_DEBUG
-    usleep(1000000 / TIME_SPEED);
+    struct timespec ts = {0, 1000000000 / TIME_SPEED};
+    nanosleep(&ts);
+    //usleep(1000000 / TIME_SPEED);
     stgTime++;
     #else
+    struct timespec ts = {0, 500000000};
+    nanosleep(&ts);
+    //usleep(500000);
     stgTime = time(NULL);
-    usleep(500000);
     #endif
     }
 isTimerRunning = false;
@@ -104,9 +108,13 @@ return isTimerRunning;
 int stgUsleep(unsigned long t)
 {
 #ifdef STG_TIMER_DEBUG
-return usleep(t / TIME_SPEED);
+struct timespec ts = {(t / TIME_SPEED) / 1000000, ((t / TIME_SPEED) % 1000000) * 1000};
+return nanosleep(&ts);
+//return usleep(t / TIME_SPEED);
 #else
-return usleep(t);
+struct timespec ts = {t / 1000000, (t % 1000000) * 1000};
+return nanosleep(&ts);
+//return usleep(t);
 #endif
 }
 //-----------------------------------------------------------------------------
@@ -116,5 +124,3 @@ void WaitTimer()
         stgUsleep(200000);
 }
 //-----------------------------------------------------------------------------
-
-
index 9697cde055b9b84b01ce0f3ba6bebf4f14e92bc4..dd672f3733c0ae128f8145b1031fc132c01a3d0b 100644 (file)
@@ -139,9 +139,10 @@ while (users->SearchNext(h, &u) == 0)
 users->CloseSearch(h);
 
 //5 seconds to thread stops itself
+struct timespec ts = {0, 200000000};
 for (int i = 0; i < 25 && !stopped; i++)
     {
-    usleep(200000);
+    nanosleep(&ts, NULL);
     }
 
 //after 5 seconds waiting thread still running. now kill it
@@ -166,10 +167,10 @@ tc->stopped = false;
 int c = 0;
 
 time_t touchTime = stgTime - MONITOR_TIME_DELAY_SEC;
-
+struct timespec ts = {0, 500000000};
 while (tc->running)
     {
-    usleep(500000);
+    nanosleep(&ts, 0);
     if (!tc->running)
         {
         tc->FlushAndRemove();
index e58e7224d1332a3dbd26eab623adde4f7c57900b..249551875b3beb4ea44276849197bf63f23744d4 100644 (file)
@@ -467,13 +467,13 @@ if (!isRunning)
 nonstop = false;
 
 //5 seconds to thread stops itself
-unsigned i;
-for (i = 0; i < 25 * (users.size() / 50 + 1); i++)
+struct timespec ts = {0, 200000000};
+for (size_t i = 0; i < 25 * (users.size() / 50 + 1); i++)
     {
     if (!isRunning)
         break;
 
-    usleep(200000);
+    nanosleep(&ts, NULL);
     }
 
 //after 5 seconds waiting thread still running. now kill it