On Wed, 2020-05-13 at 15:53 +0000, David Laight wrote:
> > If we don't have pselect() we use the close() in the signal
> > handler. In that case we're just waiting in the read(), we're not
> > using select() or poll() or whatever.  It's definitely the case
> > that if we're waiting in read() and someone closes the FD, we'll
> > wake up! :)
> 
> Ugg, that is relying on getting either EINTR or EBADFD.

Yes, exactly.

> I can't remember if Posix allows SIGCHLD to be delivered
> in a different thread.

It does: all you have to do is ensure that all threads other than the
one you want block the signal.

However, GNU make is not multithreaded so this is moot.

> Windows definitely likes delivering signals that way :-)

In Windows IIRC GNU make doesn't use this method at all; Windows has
some kind of process shared semaphore that is used instead.  I didn't
write that code so I can't really describe it in detail :)

Reply via email to