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

@ -1,6 +1,7 @@
"""Tests for futures.py."""
import concurrent.futures
import gc
import re
import sys
import threading
@ -19,9 +20,11 @@ except ImportError:
def _fakefunc(f):
return f
def first_cb():
pass
def last_cb():
pass
@ -483,6 +486,15 @@ class BaseFutureTests:
Exception("elephant"), Exception("elephant"))
self.assertRaises(TypeError, fi.throw, list)
def test_future_del_collect(self):
class Evil:
def __del__(self):
gc.collect()
for i in range(100):
fut = self._new_future(loop=self.loop)
fut.set_result(Evil())
@unittest.skipUnless(hasattr(futures, '_CFuture'),
'requires the C _asyncio module')