diff options
author | Felix Fietkau <nbd@openwrt.org> | 2012-07-09 00:27:40 +0400 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2012-07-09 00:27:40 +0400 |
commit | cca2ed6c8cdb3555fea43ff63ba1c9905dd7a164 (patch) | |
tree | 0006eac24f46a61516dc092ef7925ea6caa1aedc | |
parent | 0001d8ab26694f5f546da7e8f9d0575b49671500 (diff) |
uloop: clear processes and timeouts on uloop_done()
-rw-r--r-- | uloop.c | 19 |
1 files changed, 19 insertions, 0 deletions
@@ -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(); } |