From: Victor Stinner Date: Mon, 20 Jun 2011 15:53:35 +0000 (+0200) Subject: Issue #12285: multiprocessing.Pool() raises a ValueError if the number of X-Git-Tag: v3.2.2rc1~223^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2fae27b735f4d93c8a7789a7a98857e1ce3c7193;p=python Issue #12285: multiprocessing.Pool() raises a ValueError if the number of processes if negative or null. --- diff --git a/Lib/multiprocessing/pool.py b/Lib/multiprocessing/pool.py index 92170f2ee8..e450319d4f 100644 --- a/Lib/multiprocessing/pool.py +++ b/Lib/multiprocessing/pool.py @@ -148,6 +148,8 @@ class Pool(object): processes = cpu_count() except NotImplementedError: processes = 1 + if processes < 1: + raise ValueError("Number of processes must be at least 1") if initializer is not None and not hasattr(initializer, '__call__'): raise TypeError('initializer must be a callable') diff --git a/Lib/test/test_multiprocessing.py b/Lib/test/test_multiprocessing.py index 2614689bca..dc41e151bf 100644 --- a/Lib/test/test_multiprocessing.py +++ b/Lib/test/test_multiprocessing.py @@ -1089,6 +1089,9 @@ class _TestPool(BaseTestCase): self.assertEqual(sorted(it), list(map(sqr, list(range(1000))))) def test_make_pool(self): + self.assertRaises(ValueError, multiprocessing.Pool, -1) + self.assertRaises(ValueError, multiprocessing.Pool, 0) + p = multiprocessing.Pool(3) self.assertEqual(3, len(p._pool)) p.close()