Re: [PATCH v2 0/3] daemon: explicitly allow EINTR during poll()
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jun 25, 2025, 16:24 UTC
- Message-ID
- <xmqqo6ubx00s.fsf@gitster.g>
- In-Reply-To
- <907a79d1-da2e-4c8e-963f-05c6e313643f@gmail.com>
Phillip Wood <phillip.wood123@gmail.com> writes:
Show 18 quoted lines
> On 25/06/2025 08:35, Carlo Marcelo Arenas Belón via GitGitGadget wrote: >> This series addresses and ambiguity that is at least visible in OpenBSD, >> where zombie proceses would only be cleared after a new connection is >> received. > > There is still a race where a child that exits after it has been > checked in check_dead_children() but before we call poll() will not be > collected until a new connection is received or a child exits while > we're polling. If we used the self-pipe trick described on the > select(2) man page [1] we would avoid that race and would not need to > mess with SA_RESTART and so would not need to introduce > USE_NON_POSIX_SIGNAL. > > Best Wishes > > Phillip > > [1] https://www.man7.org/linux/man-pages/man2/select.2.html
The principle should apply equally to poll-based service loop, I presume.
Thanks.