]> git.stg.codes - stg.git/blobdiff - projects/stargazer/stg_timer.cpp
Include sys/stat.h in main.cpp for S_IRUSR on FreeBSD
[stg.git] / projects / stargazer / stg_timer.cpp
index 7903c38d70dfd825b30672ed4ce447c92d629a1a..dd0a04e1a9d249ceae200214b528d1b0a1f60e1f 100644 (file)
@@ -1,6 +1,6 @@
-#include <unistd.h>
 #include <pthread.h>
 
 #include <pthread.h>
 
+#include <ctime>
 #include <cstring>
 
 #include "common.h"
 #include <cstring>
 
 #include "common.h"
@@ -61,11 +61,15 @@ isTimerRunning = true;
 while (nonstop)
     {
     #ifdef STG_TIMER_DEBUG
 while (nonstop)
     {
     #ifdef STG_TIMER_DEBUG
-    usleep(1000000 / TIME_SPEED);
+    struct timespec ts = {0, 1000000000 / TIME_SPEED};
+    nanosleep(&ts, NULL);
+    //usleep(1000000 / TIME_SPEED);
     stgTime++;
     #else
     stgTime++;
     #else
+    struct timespec ts = {0, 500000000};
+    nanosleep(&ts, NULL);
+    //usleep(500000);
     stgTime = time(NULL);
     stgTime = time(NULL);
-    usleep(500000);
     #endif
     }
 isTimerRunning = false;
     #endif
     }
 isTimerRunning = false;
@@ -104,9 +108,13 @@ return isTimerRunning;
 int stgUsleep(unsigned long t)
 {
 #ifdef STG_TIMER_DEBUG
 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, NULL);
+//return usleep(t / TIME_SPEED);
 #else
 #else
-return usleep(t);
+struct timespec ts = {t / 1000000, (t % 1000000) * 1000};
+return nanosleep(&ts, NULL);
+//return usleep(t);
 #endif
 }
 //-----------------------------------------------------------------------------
 #endif
 }
 //-----------------------------------------------------------------------------
@@ -116,5 +124,3 @@ void WaitTimer()
         stgUsleep(200000);
 }
 //-----------------------------------------------------------------------------
         stgUsleep(200000);
 }
 //-----------------------------------------------------------------------------
-
-