GH-110796: fix intermittent test failure in test_current_exceptions

This commit is contained in:
Filipe Laíns 2023-10-13 07:26:27 +01:00 committed by GitHub
parent 6478dea3c8
commit 2f59d418cf
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -511,7 +511,7 @@ class SysModuleTest(unittest.TestCase):
# Spawn a thread that blocks at a known place. Then the main
# thread does sys._current_frames(), and verifies that the frames
# returned make sense.
entered_g = threading.Event()
g_raised = threading.Event()
leave_g = threading.Event()
thread_info = [] # the thread's id
@ -520,22 +520,19 @@ class SysModuleTest(unittest.TestCase):
def g456():
thread_info.append(threading.get_ident())
entered_g.set()
while True:
try:
raise ValueError("oops")
except ValueError:
g_raised.set()
if leave_g.wait(timeout=support.LONG_TIMEOUT):
break
t = threading.Thread(target=f123)
t.start()
entered_g.wait()
g_raised.wait(timeout=support.LONG_TIMEOUT)
try:
# At this point, t has finished its entered_g.set(), although it's
# impossible to guess whether it's still on that line or has moved on
# to its leave_g.wait().
self.assertEqual(len(thread_info), 1)
thread_id = thread_info[0]