bpo-31620: have asyncio/queues not leak memory when you've exceptions during waiting (GH-3813) (#4326)

(cherry picked from commit c62f0cb3b1)
This commit is contained in:
Miss Islington (bot) 2017-11-07 11:08:15 -08:00 committed by Andrew Svetlov
parent 64f10492dc
commit ac4f6d4448
3 changed files with 25 additions and 0 deletions

View file

@ -167,6 +167,12 @@ class Queue:
yield from getter
except:
getter.cancel() # Just in case getter is not done yet.
try:
self._getters.remove(getter)
except ValueError:
pass
if not self.empty() and not getter.cancelled():
# We were woken up by put_nowait(), but can't take
# the call. Wake up the next in line.