Clarify {stream,future}.cancel-{read,write} #593
Merged
+30
−10
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.
I realized that the current Python CABI definition ignores the case where a first
{stream,future}.cancel-{read,write}blocked and then the component tries cancelling a second time. I think it should simply trap, so this PR adds a newCopyStateto catch this case.(I would have added a test to
test/async/cancel-stream.wast, but it's currently only possible to hit using host powers (because cancellation never blocks in component-to-component cases). Once we add{stream,future}.read-complete, we'll be able to cause{stream,future}.cancel-writeto block from within a pure component WAST, so I added a note to add a test then.)