- fix timer logic

This commit is contained in:
Babak Farrokhi 2015-09-13 12:06:28 +04:30
parent 5c9b5b658c
commit f98a3dd0e4

View File

@ -134,16 +134,16 @@ int config(char *iface)
} }
time_t wait_for(int seconds) { time_t wait_for(int seconds) {
struct timespec tp; struct timespec tp;
clock_gettime(CLOCK_REALTIME, &tp); clock_gettime(CLOCK_REALTIME, &tp);
time_t current_epoch = tp.tv_sec; time_t current_epoch = tp.tv_sec;
long nsec_to_sleep = (1000*1000*1000 - tp.tv_nsec) * seconds; long nsec_to_sleep = 1000*1000*1000 - tp.tv_nsec;
/* Only sleep if needed */ /* Only sleep if needed */
if (nsec_to_sleep > 0) { if (nsec_to_sleep > 0) {
tp.tv_sec = 0; tp.tv_sec = seconds - 1;
tp.tv_nsec = nsec_to_sleep; tp.tv_nsec = nsec_to_sleep;
nanosleep(&tp, NULL); nanosleep(&tp, NULL);
} }