On Sun, Nov 21, 2021 at 09:49:32PM -0800, Junio C Hamano wrote: > > That's a lot more tedious "if (!in_signal)" checks, but: > > > > - we don't have to duplicate any of the actual application logic > > > > - we'd now cover the extra cases for waitpid failing or returning the > > wrong pid (previously if waitpid() failed we'd still look at status, > > which could contain complete garbage!) > > Yeah, the repeated "if (!in_signal)" look a bit ugly, but fixing > that "we only deal with ifexited in in_signal case" to do the right > thing would make the code even more annoying and harder to maintain. OK. Let me see if I can clean this up into a full series that actually fixes the race you saw, and breaks down the other fixes a bit more. -Peff