efd3be9 sd-event: re-check new epoll events when a child event is queued

1 file Authored by Yu Watanabe 3 years ago, Committed by Lennart Poettering 3 years ago,
    sd-event: re-check new epoll events when a child event is queued
    
    Previously, when a process outputs something and exit just after
    epoll_wait() but before process_child(), then the IO event is ignored
    even if the IO event has higher priority. See #18190.
    
    This can be solved by checking epoll event again after process_child().
    
    However, there exists a possibility that another process outputs and
    exits just after process_child() but before the second epoll_wait().
    When the IO event has lower priority than the child event, still IO
    event is processed.
    
    So, this makes new epoll events and child events are checked in a loop
    until no new event is detected. To prevent an infinite loop, the number
    of maximum trial is set to 10.
    
    Fixes #18190.