From 182d8a8145dd85ee9da69f717d99ee959fb62734 Mon Sep 17 00:00:00 2001 From: David Herrmann Date: Thu, 27 Sep 2012 14:29:33 +0200 Subject: [PATCH] eloop: make timerfd non-blocking We actually allow draining a timer so we cannot be sure that a timer has valid data that we can read. We already handle the non-blocking case everywhere, we just missed setting this flag. Signed-off-by: David Herrmann --- src/eloop.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/eloop.c b/src/eloop.c index 1bf9ff7..c83dcb4 100644 --- a/src/eloop.c +++ b/src/eloop.c @@ -1540,7 +1540,7 @@ int ev_timer_new(struct ev_timer **out, const struct itimerspec *spec, timer->cb = cb; timer->data = data; - timer->fd = timerfd_create(CLOCK_MONOTONIC, TFD_CLOEXEC); + timer->fd = timerfd_create(CLOCK_MONOTONIC, TFD_CLOEXEC | TFD_NONBLOCK); if (timer->fd < 0) { llog_error(timer, "cannot create timerfd (%d): %m", errno); ret = -EFAULT;