"read(int, void *, size_t)" returns the number of bytes read, but it
is ignored.

We don't really care about the number of bytes, but let's complain if we get
anything but EAGAIN.

Signed-off-by: Peter Hutterer <[email protected]>
---
 src/timer.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/timer.c b/src/timer.c
index 114a649..d1d3c10 100644
--- a/src/timer.c
+++ b/src/timer.c
@@ -102,8 +102,14 @@ libinput_timer_handler(void *data)
        struct libinput_timer *timer, *tmp;
        uint64_t now;
        uint64_t discard;
+       int r;
 
-       read(libinput->timer.fd, &discard, sizeof(discard));
+       r = read(libinput->timer.fd, &discard, sizeof(discard));
+       if (r == -1 && errno != EAGAIN)
+               log_bug_libinput(libinput,
+                                "Error %d reading from timerfd (%s)",
+                                errno,
+                                strerror(errno));
 
        now = libinput_now(libinput);
        if (now == 0)
-- 
2.3.5

_______________________________________________
wayland-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to