> ERRORS > > EINTR A signal occurred. Different unices seem to have manpages which differ considerably in these areas. The Solaris manpage says: EINTR The operation was interrupted by delivery of a signal before any data could be buffered to be sent. which suggests that you won't get EINTR if some data *has* been sent before the signal arrives. It seems to me the only thing that could possibly happen in this case is to return with fewer bytes than requested, whether the socket is non-blocking or not. So it seems that, in the presence of signals, neither write() nor send() can be relied upon to either completely succeed or completely fail. Perhaps the reason this hasn't caused anyone a problem is that the combination of blocking sockets and signals that you want to handle and then carry on after are fairly rare. Greg Ewing, Computer Science Dept, +--------------------------------------+ University of Canterbury, | A citizen of NewZealandCorp, a | Christchurch, New Zealand | wholly-owned subsidiary of USA Inc. | greg@cosc.canterbury.ac.nz +--------------------------------------+
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4