mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-10 07:11:27 +00:00
Merge pull request #17969 from donaldsharp/fpm_lost_sends
zebra: Ensure dplane does not send work back to master at wrong time
This commit is contained in:
commit
704372bf4b
@ -7528,6 +7528,16 @@ static void dplane_thread_loop(struct event *event)
|
|||||||
if (!zdplane_info.dg_run)
|
if (!zdplane_info.dg_run)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The yield should only happen after a bit of work has been
|
||||||
|
* done but before we pull any new work off any provider
|
||||||
|
* queue to continue looping. This is a safe spot to
|
||||||
|
* do so.
|
||||||
|
*/
|
||||||
|
if (event_should_yield(event)) {
|
||||||
|
reschedule = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
/* Locate next provider */
|
/* Locate next provider */
|
||||||
next_prov = dplane_prov_list_next(&zdplane_info.dg_providers,
|
next_prov = dplane_prov_list_next(&zdplane_info.dg_providers,
|
||||||
prov);
|
prov);
|
||||||
@ -7592,11 +7602,6 @@ static void dplane_thread_loop(struct event *event)
|
|||||||
zlog_debug("dplane dequeues %d completed work from provider %s",
|
zlog_debug("dplane dequeues %d completed work from provider %s",
|
||||||
counter, dplane_provider_get_name(prov));
|
counter, dplane_provider_get_name(prov));
|
||||||
|
|
||||||
if (event_should_yield(event)) {
|
|
||||||
reschedule = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Locate next provider */
|
/* Locate next provider */
|
||||||
prov = next_prov;
|
prov = next_prov;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user