From 5f1f1710f928abaf8edd2f037b3b9035207537ae Mon Sep 17 00:00:00 2001 From: David Herrmann Date: Fri, 23 Mar 2012 17:58:19 +0100 Subject: [PATCH] eloop: correctly set ->exit When exiting a child eloop we should forward the exit to the parent. Also, we should reset ->exit on ev_eloop_run() otherwise we cannot run multiple times. Signed-off-by: David Herrmann --- src/eloop.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/eloop.c b/src/eloop.c index 55a95d3..ad53fea 100644 --- a/src/eloop.c +++ b/src/eloop.c @@ -820,6 +820,7 @@ int ev_eloop_run(struct ev_eloop *loop, int timeout) if (!loop) return -EINVAL; + loop->exit = false; log_debug("run for %d msecs", timeout); gettimeofday(&start, NULL); @@ -857,4 +858,6 @@ void ev_eloop_exit(struct ev_eloop *loop) log_debug("exiting %p", loop); loop->exit = true; + if (loop->fd->loop) + ev_eloop_exit(loop->fd->loop); }