X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/641204dfbdb9fc870cdd2e7f9e3169a44693e7bf..2c3ce1f7a7370483bf6a23939488dc4908064b19:/projects/stargazer/stg_timer.cpp?ds=sidebyside diff --git a/projects/stargazer/stg_timer.cpp b/projects/stargazer/stg_timer.cpp index 79844ba3..fff79a39 100644 --- a/projects/stargazer/stg_timer.cpp +++ b/projects/stargazer/stg_timer.cpp @@ -1,9 +1,9 @@ -#include #include +#include #include -#include "common.h" +#include "stg/common.h" static int nonstop; static pthread_t thrStgTimer; @@ -33,7 +33,7 @@ struct tm lt; memset(<, 0, sizeof(lt)); lt.tm_year = 2007 - 1900; // 2005 -lt.tm_mon = 10 - 1; // Nov +lt.tm_mon = 11 - 1; // Nov lt.tm_hour = 23; // 23 h lt.tm_min = 57; // 50 min lt.tm_sec = 0; // 00 sec @@ -54,6 +54,8 @@ switch (START_TIME) stgTime = mktime(<); break; } +#else +stgTime = time(NULL); #endif nonstop = 1; @@ -61,11 +63,15 @@ isTimerRunning = true; 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 + struct timespec ts = {0, 500000000}; + nanosleep(&ts, NULL); + //usleep(500000); stgTime = time(NULL); - usleep(500000); #endif } isTimerRunning = false; @@ -104,9 +110,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, NULL); +//return usleep(t / TIME_SPEED); #else -return usleep(t); +struct timespec ts = {t / 1000000, (t % 1000000) * 1000}; +return nanosleep(&ts, NULL); +//return usleep(t); #endif } //----------------------------------------------------------------------------- @@ -116,5 +126,3 @@ void WaitTimer() stgUsleep(200000); } //----------------------------------------------------------------------------- - -