[x] stream: don't call _read after destroy() #29485
Closed
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.
Stop flowing once destroyed.
Currently stream implementation MUST check for
destroyed
inside_read
.Found this while investigating a suspicious
destroyed
conditional infs
streams.This is semver major unfortunately. The existing behaviour is to flush the readable and invoke
end
afterdestroy()
. See updated tests.If preferable I can make a less breaking version of this (instead of or as an intermediate?) that just makes sure
_read
is not called afterdestroy()
. Though it does not fully "correct" the behaviour.Refs: #29477
Checklist
make -j4 test
(UNIX), orvcbuild test
(Windows) passes