@@ -21,21 +21,29 @@ def test_create_many_sequential(self):
2121 for _ in range (100 ):
2222 interp = interpreters .create ()
2323 alive .append (interp )
24+ del alive
25+ support .gc_collect ()
2426
25- @support .requires_resource ('cpu' )
26- @threading_helper .requires_working_threading ()
27- def test_create_many_threaded (self ):
27+ @support .bigmemtest (size = 200 , memuse = 32 * 2 ** 20 , dry_run = False )
28+ def test_create_many_threaded (self , size ):
2829 alive = []
30+ start = threading .Event ()
2931 def task ():
32+ # try to create all interpreters simultaneously
33+ if not start .wait (support .SHORT_TIMEOUT ):
34+ raise TimeoutError
3035 interp = interpreters .create ()
3136 alive .append (interp )
32- threads = ( threading .Thread (target = task ) for _ in range (200 ))
37+ threads = [ threading .Thread (target = task ) for _ in range (size )]
3338 with threading_helper .start_threads (threads ):
34- pass
39+ start .set ()
40+ del alive
41+ support .gc_collect ()
3542
36- @support .requires_resource ('cpu' )
3743 @threading_helper .requires_working_threading ()
38- def test_many_threads_running_interp_in_other_interp (self ):
44+ @support .bigmemtest (size = 200 , memuse = 34 * 2 ** 20 , dry_run = False )
45+ def test_many_threads_running_interp_in_other_interp (self , size ):
46+ start = threading .Event ()
3947 interp = interpreters .create ()
4048
4149 script = f"""if True:
@@ -47,6 +55,9 @@ def run():
4755 interp = interpreters .create ()
4856 alreadyrunning = (f'{ interpreters .InterpreterError } : '
4957 'interpreter already running' )
58+ # try to run all interpreters simultaneously
59+ if not start .wait (support .SHORT_TIMEOUT ):
60+ raise TimeoutError
5061 success = False
5162 while not success :
5263 try :
@@ -58,9 +69,10 @@ def run():
5869 else :
5970 success = True
6071
61- threads = ( threading .Thread (target = run ) for _ in range (200 ))
72+ threads = [ threading .Thread (target = run ) for _ in range (size )]
6273 with threading_helper .start_threads (threads ):
63- pass
74+ start .set ()
75+ support .gc_collect ()
6476
6577
6678if __name__ == '__main__' :
0 commit comments