diff options
author | N-R-K <nrk@disroot.org> | 2022-05-12 14:47:46 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-05-12 14:47:46 +0000 |
commit | 633a4f66d98e46755effb71d6cd3f8a681c4818c (patch) | |
tree | 5c402e1f6a93871203c845a98934e307c09ae713 | |
parent | 3a22e6a6c5ad10e8c5cb9abb3615d2a8867d63e9 (diff) |
check_timeouts: avoid unnecessary conversions (#273)
before we were using select, which expected `struct timeval` as
arg. so we needed to do ms -> timeval conversions.
but now since we're using poll, which accepts milisec as arg, there's
no need to do ms -> timeval -> ms. instead have check_timeouts directly
return ms.
-rw-r--r-- | main.c | 8 | ||||
-rw-r--r-- | nsxiv.h | 6 |
2 files changed, 4 insertions, 10 deletions
@@ -207,7 +207,7 @@ void reset_timeout(timeout_f handler) } } -static bool check_timeouts(struct timeval *t) +static bool check_timeouts(int *t) { int i = 0, tdiff, tmin = -1; struct timeval now; @@ -228,7 +228,7 @@ static bool check_timeouts(struct timeval *t) i++; } if (tmin > 0 && t != NULL) - TV_SET_MSEC(t, tmin); + *t = tmin; return tmin > 0; } @@ -703,7 +703,7 @@ static void run(void) { enum { FD_X, FD_INFO, FD_ARL, FD_CNT }; struct pollfd pfd[FD_CNT]; - struct timeval timeout = {0}; + int timeout = 0; const struct timespec ten_ms = {0, 10000000}; bool discard, init_thumb, load_thumb, to_set; XEvent ev, nextev; @@ -735,7 +735,7 @@ static void run(void) pfd[FD_ARL].fd = arl.fd; pfd[FD_X].events = pfd[FD_INFO].events = pfd[FD_ARL].events = POLLIN; - if (poll(pfd, ARRLEN(pfd), to_set ? TV_TO_MS(&timeout) : -1) < 0) + if (poll(pfd, ARRLEN(pfd), to_set ? timeout : -1) < 0) continue; if (pfd[FD_INFO].revents & POLLIN) read_info(); @@ -44,12 +44,6 @@ #define TV_DIFF(t1,t2) (((t1)->tv_sec - (t2)->tv_sec ) * 1000 + \ ((t1)->tv_usec - (t2)->tv_usec) / 1000) -#define TV_TO_MS(tv) (((tv)->tv_sec * 1000) + ((tv)->tv_usec / 1000)) - -#define TV_SET_MSEC(tv,t) { \ - (tv)->tv_sec = (t) / 1000; \ - (tv)->tv_usec = (t) % 1000 * 1000; \ -} #define TV_ADD_MSEC(tv,t) { \ (tv)->tv_sec += (t) / 1000; \ |