File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -386,27 +386,28 @@ def foo(x):
386386 @threading_helper .reap_threads
387387 @threading_helper .requires_working_threading ()
388388 def test_free_threading (self ):
389- def mutate ( b , l ):
390- d = [ None ] * 500
391- b . wait ()
392- l . extend ( d )
389+ def read ( done , l ):
390+ while not done . is_set ():
391+ for _ in range ( 100 ):
392+ _ = l [ 1 ]
393393
394- for _ in range (1000 ):
395- del l [:360 ]
396- l [1 :- 1 ] = d
397-
398- NUM_THREADS = 20
399- barrier = threading .Barrier (NUM_THREADS )
394+ NUM_THREADS = 10
395+ done = threading .Event ()
400396 threads = []
401- l = []
397+ l = [None ] * 500
398+ d = [None ] * 498
402399
403400 for _ in range (NUM_THREADS ):
404- thread = threading .Thread (target = mutate , args = (barrier , l ))
401+ thread = threading .Thread (target = read , args = (done , l ))
405402
406403 threads .append (thread )
407404
408405 with threading_helper .start_threads (threads ):
409- pass
406+ for _ in range (100 ):
407+ del l [:498 ]
408+ l [1 :- 1 ] = d
409+
410+ done .set ()
410411
411412
412413if __name__ == "__main__" :
You can’t perform that action at this time.
0 commit comments