mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2024-11-08 12:18:42 +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:
parent
0bfa216f49
commit
6a242b3ec6
@ -2226,12 +2226,12 @@ io_loop(void)
|
|||||||
for(;;)
|
for(;;)
|
||||||
{
|
{
|
||||||
times_update(&main_timeloop);
|
times_update(&main_timeloop);
|
||||||
events = ev_run_list(&global_event_list);
|
ev_run_list(&global_event_list);
|
||||||
events = ev_run_list_limited(&global_work_list, WORK_EVENTS_MAX) || events;
|
ev_run_list_limited(&global_work_list, WORK_EVENTS_MAX);
|
||||||
timers_fire(&main_timeloop);
|
timers_fire(&main_timeloop);
|
||||||
io_close_event();
|
io_close_event();
|
||||||
|
|
||||||
// FIXME
|
events = !EMPTY_LIST(global_event_list) || !EMPTY_LIST(global_work_list);
|
||||||
poll_tout = (events ? 0 : 3000); /* Time in milliseconds */
|
poll_tout = (events ? 0 : 3000); /* Time in milliseconds */
|
||||||
if (t = timers_first(&main_timeloop))
|
if (t = timers_first(&main_timeloop))
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user