patty/src/timer.c

33 lines
774 B
C
Raw Normal View History

#include <patty/timer.h>
int patty_timer_expired(struct timeval *timer) {
return timer->tv_sec <= 0? 1: 0;
}
void patty_timer_cancel(struct timeval *timer) {
timer->tv_sec = 0;
timer->tv_usec = 0;
}
void patty_timer_start(struct timeval *timer,
struct timeval *target,
time_t ms) {
timer->tv_sec = ms / 1000;
timer->tv_usec = (ms % 1000) * 1000;
if (timercmp(timer, target, >)) {
target->tv_sec = timer->tv_sec;
target->tv_usec = timer->tv_usec;
}
}
void patty_timer_tick(struct timeval *timer,
struct timeval *elapsed) {
struct timeval res;
timersub(timer, elapsed, &res);
timer->tv_sec = res.tv_sec;
timer->tv_usec = res.tv_usec;
}