summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDonatas Abraitis <donatas@opensourcerouting.org>2024-06-19 10:22:36 +0300
committerGitHub <noreply@github.com>2024-06-19 10:22:36 +0300
commit64112ed9e65eacd9a706d59fd1345ae64ee6c4a4 (patch)
tree815ad4dbdca585f710df9704816db0f41544422b
parent86d2466d5a6b33ef40bdf45ae0d0737e120dc03c (diff)
parent6faad863f30d29157e4c675ad956e3ccd38991a7 (diff)
Merge pull request #16224 from donaldsharp/zebra_dplane_event_loop_starvation
zebra: Prevent starvation in dplane_thread_loop
-rw-r--r--zebra/zebra_dplane.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/zebra/zebra_dplane.c b/zebra/zebra_dplane.c
index ee48a571b8..7910559c4b 100644
--- a/zebra/zebra_dplane.c
+++ b/zebra/zebra_dplane.c
@@ -7446,6 +7446,11 @@ static void dplane_thread_loop(struct event *event)
zlog_debug("dplane dequeues %d completed work from provider %s",
counter, dplane_provider_get_name(prov));
+ if (event_should_yield(event)) {
+ reschedule = true;
+ break;
+ }
+
/* Locate next provider */
prov = dplane_prov_list_next(&zdplane_info.dg_providers, prov);
}