diff options
author | Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> | 2017-11-07 19:08:15 (GMT) |
---|---|---|
committer | Andrew Svetlov <andrew.svetlov@gmail.com> | 2017-11-07 19:08:15 (GMT) |
commit | ac4f6d4448fb6f9affb817bafb8357450fe43349 (patch) | |
tree | 065069e8c29beb1b2ea6d6c626c505d9587da289 /Lib/test | |
parent | 64f10492dcda4117ac06399ae46ab645cb09b19e (diff) | |
download | cpython-ac4f6d4448fb6f9affb817bafb8357450fe43349.zip cpython-ac4f6d4448fb6f9affb817bafb8357450fe43349.tar.gz cpython-ac4f6d4448fb6f9affb817bafb8357450fe43349.tar.bz2 |
bpo-31620: have asyncio/queues not leak memory when you've exceptions during waiting (GH-3813) (#4326)
(cherry picked from commit c62f0cb3b1f6f9ca4ce463b1c99b0543bdfa38d6)
Diffstat (limited to 'Lib/test')
-rw-r--r-- | Lib/test/test_asyncio/test_queues.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/Lib/test/test_asyncio/test_queues.py b/Lib/test/test_asyncio/test_queues.py index fe5a6db..2137cde 100644 --- a/Lib/test/test_asyncio/test_queues.py +++ b/Lib/test/test_asyncio/test_queues.py @@ -295,6 +295,23 @@ class QueueGetTests(_QueueTestBase): loop=self.loop), ) + def test_cancelled_getters_not_being_held_in_self_getters(self): + def a_generator(): + yield 0.1 + yield 0.2 + + self.loop = self.new_test_loop(a_generator) + @asyncio.coroutine + def consumer(queue): + try: + item = yield from asyncio.wait_for(queue.get(), 0.1, loop=self.loop) + except asyncio.TimeoutError: + pass + + queue = asyncio.Queue(loop=self.loop, maxsize=5) + self.loop.run_until_complete(self.loop.create_task(consumer(queue))) + self.assertEqual(len(queue._getters), 0) + class QueuePutTests(_QueueTestBase): |