3 ms·
Except that now, thanks to the GNU make change in 2017, there are two families of jobserver where previously there was one. There is a family that sets the pip
by JdeBP 7y ago
Except that now, thanks to the GNU make change in 2017, there are two families of jobserver where previously there was one. There is a family that sets the pipe file descriptors to non-blocking mode, and there is a family that sets the pipe file descriptors to blocking mode.
Alas, the twain do not mix. So anything that wants to interoperate has to know what family of jobserver it is interoperating with. (It has been well known in the Unix world for years that if all programs do not agree on whether a shared file descriptor is in non-blocking mode, difficulties ensue. Yes, nonblock_read() and nonblock_write() would have provided a way to solve this whilst retaining interoperability.)
* https://jdebp.eu/FGA/dont-set-shared-file-descriptors-to-non-blocking-mode.html https://jdebp.eu/FGA/dont-set-shared-file-descriptors-to-non...