Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions Lib/test/test_concurrent_futures/test_wait.py
Original file line number Diff line number Diff line change
Expand Up @@ -114,9 +114,9 @@ def test_all_completed(self):

def test_timeout(self):
short_timeout = 0.050
long_timeout = short_timeout * 10
self.event.clear()

future = self.executor.submit(time.sleep, long_timeout)
future = self.executor.submit(self.event.wait)

finished, pending = futures.wait(
[CANCELLED_AND_NOTIFIED_FUTURE,
Expand All @@ -132,6 +132,8 @@ def test_timeout(self):
finished)
self.assertEqual(set([future]), pending)

# Set the event to allow the future to complete
self.event.set()

class ThreadPoolWaitTests(ThreadPoolMixin, WaitTests, BaseTestCase):

Expand Down
7 changes: 7 additions & 0 deletions Lib/test/test_concurrent_futures/util.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import multiprocessing
import sys
import threading
import time
import unittest
from concurrent import futures
Expand Down Expand Up @@ -46,18 +47,24 @@ def setUp(self):

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)

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:
Expand Down
Loading