Phyx/winio permissions and mode fixes #234
Merged
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.
Hi,
This PR fixes several issues:
createPipewere accidentally swapped. Thereadend gotwritepermissions while thewritepart gotreadpermissions in Haskell. The permissions were correct in the underlying OS object but this caused a very weird message when the handles were used. This corrects them so they're in sync.createPipein that since we don't know who's going to use which part of the handles that it's the caller's responsibility to associate the handles with the correct I/O manager. This documents an example on how to do so.messageandbyte, essentiallychunkandstreamingmode.CreateNamedPipeWdefaults tomessagemode whileCreateFiledefaulted tobytemode. However the modes need to match. This corrects it by always setting both modes explicitly ensuring that both ends always match. For these pipes we default tochunkinstead ofstreamingmode as things such asiservrequire the entire message in order to continue anyway.This fixes the last issues to enable the new I/O manager with iserv support in GHC.
/cc @bgamari