On Thursday, 24 April 2025 at 14:04:03 UTC, Andy Valencia wrote:
[...]
Phobos appears to try and inhibit this on some BSD systems,
How does it do that?
but on Linux if the recipient has closed the socket and [the
OPs process running his progam] write[s]--SIGPIPE.
"the whole point of the signal is to notify [the process writing
to the closed socket] asynchronously that the write is no longer
possible. This is part of what makes the whole elegant co-routine
structure of pipes work in UNIX." [1]
The truth is probably that there are lots of programs which don't
check write's (printf's etc.) return value so that they will
continue running.
[...] I added a SIG_IGN of SIGPIPE and that made the problem
stop.
You know that it will now throw? [0]
[0] [Issue 21649] Make D runtime ignore or handle SIGPIPE or
document the behavior,
https://forum.dlang.org/thread/bug-2164...@https.issues.dlang.org%2F
[1]
https://stackoverflow.com/questions/8369506/why-does-sigpipe-exist