bpo-31061: fix crash in asyncio speedup module (GH-2984)

(cherry picked from commit de34cbe9cd)
This commit is contained in:
INADA Naoki 2017-08-02 16:50:39 +09:00 committed by GitHub
parent 48fcc72c83
commit f142e85d22
4 changed files with 32 additions and 0 deletions

View file

@ -3,6 +3,7 @@
import collections
import contextlib
import functools
import gc
import io
import os
import re
@ -92,6 +93,20 @@ class BaseTaskTests:
self.loop.set_task_factory(self.new_task)
self.loop.create_future = lambda: self.new_future(self.loop)
def test_task_del_collect(self):
class Evil:
def __del__(self):
gc.collect()
@asyncio.coroutine
def run():
return Evil()
self.loop.run_until_complete(
asyncio.gather(*[
self.new_task(self.loop, run()) for _ in range(100)
], loop=self.loop))
def test_other_loop_future(self):
other_loop = asyncio.new_event_loop()
fut = self.new_future(other_loop)