Paul -
After looking at this problem for a while longer, I've come up with the
attached patch which solves the problem (at least for #ifdef POSIX).
When name_mtime() is called, SIGCHLD is not set to SIG_IGN or SIG_DFL,
but has a signal handler assigned. This causes the signal
PS. IMHO looping if stat(2) fails with EINTR is a much simpler, and
probably much more efficient, solution to this problem than trying
to block the signals.
Was there a particular reason you were dissatisfied with the EINTR
loop? That's a pretty common idiom, I believe.
--