Dear GNU Make developers, Could you clarify whether the read side of the jobserver pipe is meant to be in blocking or non-blocking mode?
According to the documentation [1], the read side is meant to be blocking. However, the implementation of make sets the read side to non-blocking [2] when pselect is available. I wrote a small test and indeed, if my test program tries to read more tokens than are currently available it gets EGAIN. I used make 4.3 for this test. Many thanks, Jeremie Dimino [1] https://www.gnu.org/software/make/manual/html_node/POSIX-Jobserver.html [2] http://git.savannah.gnu.org/cgit/make.git/tree/src/posixos.c#n107