]> git.stg.codes - stg.git/blobdiff - projects/stargazer/stg_timer.cpp
Process services on daily basis.
[stg.git] / projects / stargazer / stg_timer.cpp
index 235c669e0df09dcea32c31d94e9b5347932b88ff..d39c61db0a15a9d45be125b54bc22e36086f1425 100644 (file)
@@ -1,16 +1,21 @@
-#include <pthread.h>
+#include "stg_timer.h"
+
+#include "stg/common.h"
 
 #include <ctime>
 #include <cstring>
 #include <csignal>
 
-#include "stg/common.h"
+#include <pthread.h>
+
+void * StgTimer(void *);
 
 static int nonstop;
 static pthread_t thrStgTimer;
 static bool isTimerRunning = false;
 volatile time_t stgTime;
 
+#ifdef STG_TIMER_DEBUG
 const int TIME_SPEED = 1;
 /*
  1  - 1x  speed
@@ -25,6 +30,7 @@ const int START_TIME = 0;
  1 - start before new day (3 min before)   29.11.2005 23:57:00
  2 - start before new month (3 min before) 30.11.2005 23:57:00
  */
+#endif
 
 //-----------------------------------------------------------------------------
 void * StgTimer(void *)
@@ -88,7 +94,7 @@ static int a = 0;
 isTimerRunning = false;
 
 if (a == 0)
-    if (pthread_create(&thrStgTimer, NULL, StgTimer, NULL))
+    if (pthread_create(&thrStgTimer, NULL, &StgTimer, NULL))
         {
         isTimerRunning = false;
         return -1;
@@ -113,10 +119,10 @@ return isTimerRunning;
 int stgUsleep(unsigned long t)
 {
 #ifdef STG_TIMER_DEBUG
-struct timespec ts = {(t / TIME_SPEED) / 1000000, ((t / TIME_SPEED) % 1000000) * 1000};
+struct timespec ts = {static_cast<time_t>((t / TIME_SPEED) / 1000000), static_cast<long>(((t / TIME_SPEED) % 1000000) * 1000)};
 return nanosleep(&ts, NULL);
 #else
-struct timespec ts = {t / 1000000, (t % 1000000) * 1000};
+struct timespec ts = {static_cast<time_t>(t / 1000000), static_cast<long>((t % 1000000) * 1000)};
 return nanosleep(&ts, NULL);
 #endif
 }