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.
System and Service Manager
Details
Most documentation is available on systemd's web site.
Assorted, older, general information about systemd can be found in the systemd Wiki.
Information about build requirements is provided in the README file.
Consult our NEWS file for information about what's new in the most recent systemd versions.
Please see the Hacking guide for information on how to hack on systemd and test your modifications.
Please see our Contribution Guidelines for more information about filing GitHub Issues and posting GitHub Pull Requests.
When preparing patches for systemd, please follow our Coding Style Guidelines.
If you are looking for support, please contact our mailing list or join our IRC channel.
Stable branches with backported patches are available in the stable repo.