From 127862f626f39d52b758084931e0fbdc91db745c Mon Sep 17 00:00:00 2001 From: Maria Matejka Date: Wed, 26 Jan 2022 21:16:19 +0100 Subject: Asynchronous neighbor notifications fixes --- sysdep/unix/io-loop.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'sysdep/unix/io-loop.c') diff --git a/sysdep/unix/io-loop.c b/sysdep/unix/io-loop.c index ec805dce..1d3a555f 100644 --- a/sysdep/unix/io-loop.c +++ b/sysdep/unix/io-loop.c @@ -498,7 +498,9 @@ void birdloop_unlink(struct birdloop *loop) { ASSERT_DIE(birdloop_inside(loop)); - loop->links--; + ASSERT_DIE(loop->links); + if (!--loop->links) + birdloop_ping(loop); } static void @@ -541,7 +543,7 @@ birdloop_main(void *arg) birdloop_enter(loop); - if (loop->stopped) + if (loop->stopped && !loop->links) break; loop_begin = current_time(); -- cgit v1.2.3