mirror of https://github.com/python/cpython.git
[3.11] gh-113205: test_multiprocessing.test_terminate: Shorter sleep for threadpools (GH-114186) (GH-114223)
Threads can't be forced to terminate (without potentially corrupting too much
state), so the expected behaviour of `ThreadPool.terminate` is to wait for
the currently executing tasks to finish.
Use shorter sleep time for threadpools, so if a task manages to start, the test
doesn't block for long.
(cherry picked from commit c1db960608
)
Co-authored-by: Petr Viktorin <encukou@gmail.com>
This commit is contained in:
parent
363dddba14
commit
569182c4ad
|
@ -2693,8 +2693,16 @@ def test_make_pool(self):
|
|||
|
||||
def test_terminate(self):
|
||||
# Simulate slow tasks which take "forever" to complete
|
||||
sleep_time = support.LONG_TIMEOUT
|
||||
|
||||
if self.TYPE == 'threads':
|
||||
# Thread pool workers can't be forced to quit, so if the first
|
||||
# task starts early enough, we will end up waiting for it.
|
||||
# Sleep for a shorter time, so the test doesn't block.
|
||||
sleep_time = 1
|
||||
|
||||
p = self.Pool(3)
|
||||
args = [support.LONG_TIMEOUT for i in range(10_000)]
|
||||
args = [sleep_time for i in range(10_000)]
|
||||
result = p.map_async(time.sleep, args, chunksize=1)
|
||||
p.terminate()
|
||||
p.join()
|
||||
|
|
Loading…
Reference in New Issue