]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
fixup! fixup! fixup! IO: Allow to take new loops if the thread is hot, but only one...
authorMaria Matejka <mq@ucw.cz>
Thu, 27 Jun 2024 12:35:47 +0000 (14:35 +0200)
committerMaria Matejka <mq@ucw.cz>
Thu, 27 Jun 2024 12:35:47 +0000 (14:35 +0200)
sysdep/unix/io-loop.c

index bbe4dc2b0b34e3d057aa03ad19ac3287fb4f68ce..6dca5f3c9fa7b6f24fcbb08ca9ba193b17bde2d2 100644 (file)
@@ -691,8 +691,8 @@ birdloop_take(struct birdloop_pickup_group *group)
     UNLOCK_DOMAIN(attrs, group->domain);
 
     uint dropped = 0;
-    node *n;
-    WALK_LIST2(loop, n, this_thread->loops, n)
+    node *n, *_nxt;
+    WALK_LIST2_DELSAFE(loop, n, _nxt, this_thread->loops, n)
     {
       birdloop_enter(loop);
       if (ev_active(&loop->event) && !loop->stopped && !birdloop_hot_potato(loop))