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