From 2286bcf23d3d36f1cfbaa5c66b02ab38542ee628 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Fri, 1 Nov 2019 20:27:45 +0100 Subject: [PATCH] terminal: no need to check for EAGAIN - we don't use non-blocking --- terminal.c | 28 ++++++++++------------------ 1 file changed, 10 insertions(+), 18 deletions(-) diff --git a/terminal.c b/terminal.c index 5dc75d7a..29487bdf 100644 --- a/terminal.c +++ b/terminal.c @@ -40,9 +40,6 @@ fdm_ptmx(struct fdm *fdm, int fd, int events, void *data) ssize_t count = read(term->ptmx, buf, sizeof(buf)); if (count < 0) { - if (errno == EAGAIN) - return true; - LOG_ERRNO("failed to read from pseudo terminal"); return false; } @@ -116,9 +113,6 @@ fdm_flash(struct fdm *fdm, int fd, int events, void *data) term->flash.fd, &expiration_count, sizeof(expiration_count)); if (ret < 0) { - if (errno == EAGAIN) - return true; - LOG_ERRNO("failed to read flash timer"); return false; } @@ -144,9 +138,6 @@ fdm_blink(struct fdm *fdm, int fd, int events, void *data) term->blink.fd, &expiration_count, sizeof(expiration_count)); if (ret < 0) { - if (errno == EAGAIN) - return true; - LOG_ERRNO("failed to read blink timer"); return false; } @@ -192,17 +183,18 @@ fdm_delayed_render(struct fdm *fdm, int fd, int events, void *data) if (fd == term->delayed_render_timer.upper_fd) ret2 = read(term->delayed_render_timer.upper_fd, &unused, sizeof(unused)); - if ((ret1 < 0 || ret2 < 0) && errno != EAGAIN) + if ((ret1 < 0 || ret2 < 0)) { LOG_ERRNO("failed to read timeout timer"); - else if (ret1 > 0 || ret2 > 0) { - render_refresh(term); + return false; + } - /* Reset timers */ - term->delayed_render_timer.is_armed = false; - timerfd_settime(term->delayed_render_timer.lower_fd, 0, &(struct itimerspec){.it_value = {0}}, NULL); - timerfd_settime(term->delayed_render_timer.upper_fd, 0, &(struct itimerspec){.it_value = {0}}, NULL); - } else - assert(false); + render_refresh(term); + + /* Reset timers */ + struct itimerspec reset = {{0}}; + timerfd_settime(term->delayed_render_timer.lower_fd, 0, &reset, NULL); + timerfd_settime(term->delayed_render_timer.upper_fd, 0, &reset, NULL); + term->delayed_render_timer.is_armed = false; return true; }