gh-128364: Fix flaky test_timeout test (gh-130724)

This commit is contained in:
Sam Gross 2025-03-01 11:20:43 -05:00 committed by GitHub
parent ddc27f9c38
commit cfa0b1dc37
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 11 additions and 2 deletions

View file

@ -114,9 +114,8 @@ class WaitTests:
def test_timeout(self):
short_timeout = 0.050
long_timeout = short_timeout * 10
future = self.executor.submit(time.sleep, long_timeout)
future = self.executor.submit(self.event.wait)
finished, pending = futures.wait(
[CANCELLED_AND_NOTIFIED_FUTURE,
@ -132,6 +131,9 @@ class WaitTests:
finished)
self.assertEqual(set([future]), pending)
# Set the event to allow the future to complete
self.event.set()
class ThreadPoolWaitTests(ThreadPoolMixin, WaitTests, BaseTestCase):

View file

@ -1,5 +1,6 @@
import multiprocessing
import sys
import threading
import time
import unittest
from concurrent import futures
@ -46,11 +47,14 @@ class ExecutorMixin:
self.t1 = time.monotonic()
if hasattr(self, "ctx"):
self.manager = multiprocessing.Manager()
self.event = self.manager.Event()
self.executor = self.executor_type(
max_workers=self.worker_count,
mp_context=self.get_context(),
**self.executor_kwargs)
else:
self.event = threading.Event()
self.executor = self.executor_type(
max_workers=self.worker_count,
**self.executor_kwargs)
@ -58,6 +62,9 @@ class ExecutorMixin:
def tearDown(self):
self.executor.shutdown(wait=True)
self.executor = None
if hasattr(self, "ctx"):
self.manager.shutdown()
self.manager = None
dt = time.monotonic() - self.t1
if support.verbose: