From 633a4f66d98e46755effb71d6cd3f8a681c4818c Mon Sep 17 00:00:00 2001 From: N-R-K Date: Thu, 12 May 2022 14:47:46 +0000 Subject: 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. --- main.c | 8 ++++---- nsxiv.h | 6 ------ 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/main.c b/main.c index 976bd5f..7c3b835 100644 --- a/main.c +++ b/main.c @@ -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(); diff --git a/nsxiv.h b/nsxiv.h index f9f5600..55041bd 100644 --- a/nsxiv.h +++ b/nsxiv.h @@ -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; \ -- cgit v1.2.3