Skip to content

Commit ace799a

Browse files
committed
Tolerate a changed-size RuntimeError in the set repr stress test
The mutator and reader threads race on purpose; a "changed size during iteration" RuntimeError is a valid outcome of that race and should not fail the test. The panic it guards against is not. Assisted-by: Claude
1 parent 5882bab commit ace799a

1 file changed

Lines changed: 9 additions & 3 deletions

File tree

extra_tests/snippets/crash_regressions.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -371,13 +371,19 @@ def build():
371371

372372
def mutate_set():
373373
while not stop:
374-
shared_set.clear()
375-
shared_set.update({1, 2, 3})
374+
try:
375+
shared_set.clear()
376+
shared_set.update({1, 2, 3})
377+
except RuntimeError: # changed size during iteration
378+
pass
376379

377380

378381
def read_set():
379382
for _ in range(20000):
380-
repr(shared_set)
383+
try:
384+
repr(shared_set)
385+
except RuntimeError: # changed size during iteration
386+
pass
381387

382388

383389
threads = [threading.Thread(target=mutate_set) for _ in range(2)]

0 commit comments

Comments
 (0)