Offer Structured Concurrency conforming APIs for response streaming #728
Labels
good first issue
Good for newcomers
kind/enhancement
Improvements to existing feature.
status/needs-design
Needs further discussion and a concrete proposal.
Motivation
At the moment, the generator generates functions that violate Structured Concurrency for things that use HTTP response streaming. The user gets returned an async sequence that they are then supposed to stream and until that's done resources in other tasks/threads are still holding onto the live request.
This is of course violates the main principle of Structured Concurrency which is that upon return of a function, the execution resources it acquired have been released back.
Violating Structured Concurrency might be acceptable in certain cases but:
try await withFooRequest(parameters: Parameters) { result, responseBodyStream in ... }
) [this feature request]This feature request part (2), the additional availability of a fully structured API that does response streaming.
Similar efforts in other projects:
Proposed solution
Offer properly structured APIs that support HTTP response streaming in a
with*
function.Alternatives considered
No response
Additional information
No response
The text was updated successfully, but these errors were encountered: