From 0c8ff1106651c5bc2ef024364404f08163cdab43 Mon Sep 17 00:00:00 2001 From: Patrick McDermott Date: Sat, 19 Oct 2019 01:34:12 -0400 Subject: screen_main(): Poll input --- diff --git a/src/screen.c b/src/screen.c index 7259fab..c72b9de 100644 --- a/src/screen.c +++ b/src/screen.c @@ -23,6 +23,8 @@ #include #include +#include +#include #include #include #include @@ -69,7 +71,10 @@ screen_new(void) bool screen_main(struct screen *screen, struct speech *speech) { - bool play; + struct pollfd fds[] = { + { .fd = STDIN_FILENO, .events = POLLIN|POLLERR, .revents = 0 }, + }; + bool play; assert(screen); assert(speech); @@ -107,7 +112,10 @@ screen_main(struct screen *screen, struct speech *speech) speech_play_time(speech); play = false; } else { - sleep(1); + while (poll(fds, 1, 1000) < 0 && (errno == EINTR || + errno == EAGAIN)) { + continue; + } } } -- cgit v0.9.1