Skip to content

Commit 656a5a0

Browse files
committed
fix list tsan test
1 parent bed61d9 commit 656a5a0

1 file changed

Lines changed: 14 additions & 13 deletions

File tree

Lib/test/test_list.py

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff 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

412413
if __name__ == "__main__":

0 commit comments

Comments
 (0)