mirror of
https://gitlab.labs.nic.cz/labs/bird.git
synced 2024-05-11 16:54:54 +00:00
IO: Fix race condition in event processing
When regular event was added from work event, we did remember that regular event list was empty and therefore we did not use zero time in poll(). This leads to ~3 s latency in route reload during reconfiguration.
This commit is contained in:
@@ -2226,12 +2226,12 @@ io_loop(void)
|
||||
for(;;)
|
||||
{
|
||||
times_update(&main_timeloop);
|
||||
events = ev_run_list(&global_event_list);
|
||||
events = ev_run_list_limited(&global_work_list, WORK_EVENTS_MAX) || events;
|
||||
ev_run_list(&global_event_list);
|
||||
ev_run_list_limited(&global_work_list, WORK_EVENTS_MAX);
|
||||
timers_fire(&main_timeloop);
|
||||
io_close_event();
|
||||
|
||||
// FIXME
|
||||
events = !EMPTY_LIST(global_event_list) || !EMPTY_LIST(global_work_list);
|
||||
poll_tout = (events ? 0 : 3000); /* Time in milliseconds */
|
||||
if (t = timers_first(&main_timeloop))
|
||||
{
|
||||
|
Reference in New Issue
Block a user