From: Felix Fietkau Date: Sun, 8 Jul 2012 20:27:40 +0000 (+0200) Subject: uloop: clear processes and timeouts on uloop_done() X-Git-Url: http://git.archive.openwrt.org/?p=project%2Flibubox.git;a=commitdiff_plain;h=cca2ed6c8cdb3555fea43ff63ba1c9905dd7a164;hp=0001d8ab26694f5f546da7e8f9d0575b49671500 uloop: clear processes and timeouts on uloop_done() --- diff --git a/uloop.c b/uloop.c index 38da5f6..4de26d4 100644 --- a/uloop.c +++ b/uloop.c @@ -455,6 +455,22 @@ static void uloop_process_timeouts(struct timeval *tv) } } +static void uloop_clear_timeouts(void) +{ + struct uloop_timeout *t, *tmp; + + list_for_each_entry_safe(t, tmp, &timeouts, list) + uloop_timeout_cancel(t); +} + +static void uloop_clear_processes(void) +{ + struct uloop_process *p, *tmp; + + list_for_each_entry_safe(p, tmp, &processes, list) + uloop_process_delete(p); +} + void uloop_run(void) { struct timeval tv; @@ -480,4 +496,7 @@ void uloop_done(void) close(poll_fd); poll_fd = -1; + + uloop_clear_timeouts(); + uloop_clear_processes(); }