Creating streams that are actually async can be difficult, since it is not clear what methods need to be implemented. This PR adds a new AsyncStream which helps with that. The AsyncStream will force the required async methods to be implemented as well as take care of the old style async programming APM to also be async.
This PRs changes some classes (Not including NetworkTimeoutStream) to implement AsyncStream.
Appears to be no change since the APM stream was doing this work at just the right place. This change removes the need to wrap again and instead defaults our streams to be ones that work with async.
How to review this PR
Quality :heavy_check_mark:
Pre-requisites
[ ] I have read How we use GitHub Issues for help deciding when and where it's appropriate to make an issue.
[ ] I have considered informing or consulting the right people, according to the ownership map.
[ ] I have considered appropriate testing for my change.
Background
Creating streams that are actually async can be difficult, since it is not clear what methods need to be implemented. This PR adds a new
AsyncStream
which helps with that. TheAsyncStream
will force the required async methods to be implemented as well as take care of the old style async programming APM to also be async.This PRs changes some classes (Not including NetworkTimeoutStream) to implement
AsyncStream
.This PR makes use of the changes added in https://github.com/OctopusDeploy/Halibut/pull/437
[SC-57119]
Related to https://github.com/OctopusDeploy/Issues/issues/8266
Results
Appears to be no change since the APM stream was doing this work at just the right place. This change removes the need to wrap again and instead defaults our streams to be ones that work with async.
How to review this PR
Quality :heavy_check_mark:
Pre-requisites