fix(windows): map WSAEWOULDBLOCK to wouldBlock for recv/send/recvmsg/sendmsg/writev - #3705
Open
wasim-builds wants to merge 1 commit into
Open
fix(windows): map WSAEWOULDBLOCK to wouldBlock for recv/send/recvmsg/sendmsg/writev#3705wasim-builds wants to merge 1 commit into
wasim-builds wants to merge 1 commit into
Conversation
…sendmsg/writev Fixes apple#3702: Windows data path treats WSAEWOULDBLOCK as fatal for recv, send, and writev. Fixes apple#3697: WSASend error in bi-directional stream tests caused by the same missing wouldBlock mapping. The accept and connect wrappers already returned nil/false on WSAEWOULDBLOCK. This applies the same backpressure handling to the remaining data-path operations so non-blocking Windows sockets resume correctly instead of closing the channel.
wasim-builds
force-pushed
the
fix/issue-3702-wsaewouldblock
branch
from
August 21, 2026 17:15
54452ae to
c6a8d18
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Fixes #3702 and #3697.
The Windows data-path wrappers for recv, send, recvmsg, sendmsg, and writev threw IOError for every SOCKET_ERROR, including WSAEWOULDBLOCK. This caused non-blocking socket backpressure to become a fatal channel error instead of resuming when the socket became readable/writable.
The accept and connect wrappers already handled WSAEWOULDBLOCK correctly (returning nil and false respectively). This applies the same pattern to the remaining data-path operations.