summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorN-R-K <nrk@disroot.org>2022-05-12 16:47:46 +0200
committerGitHub <noreply@github.com>2022-05-12 16:47:46 +0200
commit633a4f66d98e46755effb71d6cd3f8a681c4818c (patch)
tree5c402e1f6a93871203c845a98934e307c09ae713
parent3a22e6a6c5ad10e8c5cb9abb3615d2a8867d63e9 (diff)
downloadnsxiv-633a4f66d98e46755effb71d6cd3f8a681c4818c.tar.zst
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.c8
-rw-r--r--nsxiv.h6
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; \