Make setNonBlockIfNeeded public and document its use. #242
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Making a socket out of a file descriptor may cause the RTS to hang when the fd blocks, so we need to use
setNonBlockIfNeeded
when using file descriptors that were not created by thenetwork
library (which is an otherwise supported use case)This PR contains the export and the extra documentation.
Note that it is possible to make
network
more robust against this situation by adding the call tomkSocket
, but that will introduce unnecessary system calls in almost all situations. Haskell has been doing pretty well without that extra safety. (famous last words)