]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
Cancelling all timers when loop stops
authorMaria Matejka <mq@ucw.cz>
Sun, 11 Sep 2022 20:26:24 +0000 (22:26 +0200)
committerMaria Matejka <mq@ucw.cz>
Sun, 18 Sep 2022 14:33:51 +0000 (16:33 +0200)
sysdep/unix/io-loop.c

index 3e3fc31af1ab10a7e4ec113be3b40e682d61dd5b..b7c858c6e1fcb22ed987f4ebd340a5dea6f53ce8 100644 (file)
@@ -560,8 +560,11 @@ birdloop_main(void *arg)
   /* Flush remaining events */
   ASSERT_DIE(!ev_run_list(&loop->event_list));
 
-  /* No timers allowed */
-  ASSERT_DIE(timers_count(&loop->time) == 0);
+  /* Drop timers */
+  while (t = timers_first(&loop->time))
+    tm_stop(t);
+
+  /* No sockets allowed */
   ASSERT_DIE(EMPTY_LIST(loop->sock_list));
   ASSERT_DIE(loop->sock_num == 0);