changeset: 104618:3908f432d0ac branch: 3.6 parent: 104616:126ff1f3b6cd user: Yury Selivanov date: Fri Oct 21 17:13:40 2016 -0400 files: Lib/asyncio/base_events.py Misc/NEWS description: Issue #28500: Fix asyncio to handle async gens GC from another thread. diff -r 126ff1f3b6cd -r 3908f432d0ac Lib/asyncio/base_events.py --- a/Lib/asyncio/base_events.py Fri Oct 21 12:54:02 2016 -0700 +++ b/Lib/asyncio/base_events.py Fri Oct 21 17:13:40 2016 -0400 @@ -351,6 +351,9 @@ self._asyncgens.discard(agen) if not self.is_closed(): self.create_task(agen.aclose()) + # Wake up the loop if the finalizer was called from + # a different thread. + self._write_to_self() def _asyncgen_firstiter_hook(self, agen): if self._asyncgens_shutdown_called: diff -r 126ff1f3b6cd -r 3908f432d0ac Misc/NEWS --- a/Misc/NEWS Fri Oct 21 12:54:02 2016 -0700 +++ b/Misc/NEWS Fri Oct 21 17:13:40 2016 -0400 @@ -38,6 +38,8 @@ - Issue #28492: Fix how StopIteration exception is raised in _asyncio.Future. +- Issue #28500: Fix asyncio to handle async gens GC from another thread. + Build -----