Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.openwrt.org/project/libubox.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2012-07-09 00:27:40 +0400
committerFelix Fietkau <nbd@openwrt.org>2012-07-09 00:27:40 +0400
commitcca2ed6c8cdb3555fea43ff63ba1c9905dd7a164 (patch)
tree0006eac24f46a61516dc092ef7925ea6caa1aedc
parent0001d8ab26694f5f546da7e8f9d0575b49671500 (diff)
uloop: clear processes and timeouts on uloop_done()
-rw-r--r--uloop.c19
1 files changed, 19 insertions, 0 deletions
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();
}