You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As per #56, discussion on gitter, and discussion in python-trio/trio#638 async generators aren't task safe and cause all sorts of subtle problems if used without some kind of higher level wrapping to conduct teardown, that is an explicit aclose() call. This issue is mostly to keep track of the long running discussion and eventually integrate whatever consensus solution is chosen.
For now I've implemented a custom ReceiveChannel as a stopgap but even it isn't sufficient to address premature stream break-ing/teardown currently. I would like to experiment with using an contextlib.AsyncExitStack to ensure, at least at the actor nursery level, aclose() is always called on all streams.
The effort on this general front includes quite a few issues worth watching:
As per #56, discussion on gitter, and discussion in python-trio/trio#638 async generators aren't task safe and cause all sorts of subtle problems if used without some kind of higher level wrapping to conduct teardown, that is an explicit
aclose()
call. This issue is mostly to keep track of the long running discussion and eventually integrate whatever consensus solution is chosen.For now I've implemented a custom
ReceiveChannel
as a stopgap but even it isn't sufficient to address premature streambreak
-ing/teardown currently. I would like to experiment with using ancontextlib.AsyncExitStack
to ensure, at least at the actor nursery level,aclose()
is always called on all streams.The effort on this general front includes quite a few issues worth watching:
The text was updated successfully, but these errors were encountered: