Cleanup TCPConnection GC-safety mechanism for writev buffers #3177
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.
Prior to this commit, the TCPConnection
pending_writev
buffer had tohave a secondary buffer called
_pending
to ensure that the datawouldn't get GC'd too early by the runtime.
This commit removes that hack and replaces it with a slightly different
hack based on the strategy used in
File
in PR #2775. The hacky partis that now we have two buffers for
writev
data. One for windows(
_pending_windows
) and one for non-windows (_pending_posix
) toaccount for the difference in order of the struct between windows
and posix. This, however, seems less bad than the previous hack of
having the secondary buffer to ensure GC safety.
resolves #2782
resolves #2779