make-alpha
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: GNU make jobserver redux


From: Paul Eggert
Subject: Re: GNU make jobserver redux
Date: Sat, 5 May 2001 00:49:04 -0700 (PDT)

> Date: Fri, 4 May 2001 23:26:42 -0400
> From: "Paul D. Smith" <address@hidden>
>
> The problem, IIRC, is that we concluded that some, most, or all systems
> _don't_ return with EBADF if you close the file descriptor in the
> handler.
> 
> That is, once you start the read() with a valid FD, even if the signal
> handler closes that FD then the read() still continues and does not
> return with EBADF.

Hmm, is this why you wanted that to enable EINTR-style reading just
for that one read(), and disable it for all other system calls?  If
so, then it shouldn't be hard to modify my suggestion along those
lines.  This will still avoid having the other code worry about EINTR;
only that one read() would have to worry about it.

Perhaps this is what you were suggesting anyway, and I didn't fully
understand your suggestion.  Sorry; it is taking me a bit of time to
remember all the issues involved.

> I believe I wrote a test program for this and we passed it around via
> email, and concluded that some fairly standard UNIX implementations also
> had this behavior.

I recall doing the test, but I don't recall the program.
Can you send me a copy again?

> There is one problem with removing the EINTR handling: on some very old
> systems we do not have any way to set restartable syscalls (as I
> understand it).

Yes, some ancient systems had that property.  I doubt whether any are
still in active use by GNU make users, though.  As you mention, even
GNU make 3.79.1 doesn't work reliably on those hosts anyway (the
comment in front of child_handler says the same thing).  I wouldn't
let those old hosts significantly affect "make" development any more.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]