diff options
-rw-r--r-- | Lib/multiprocessing/pool.py | 3 | ||||
-rw-r--r-- | Lib/test/test_multiprocessing.py | 17 | ||||
-rw-r--r-- | Misc/ACKS | 1 | ||||
-rw-r--r-- | Misc/NEWS | 3 |
4 files changed, 23 insertions, 1 deletions
diff --git a/Lib/multiprocessing/pool.py b/Lib/multiprocessing/pool.py index ec57939..7f73b44 100644 --- a/Lib/multiprocessing/pool.py +++ b/Lib/multiprocessing/pool.py @@ -297,7 +297,8 @@ class Pool(object): ''' Asynchronous version of `map()` method. ''' - return self._map_async(func, iterable, mapstar, chunksize) + return self._map_async(func, iterable, mapstar, chunksize, callback, + error_callback) def _map_async(self, func, iterable, mapper, chunksize=None, callback=None, error_callback=None): diff --git a/Lib/test/test_multiprocessing.py b/Lib/test/test_multiprocessing.py index a8e42e4..9c7a202 100644 --- a/Lib/test/test_multiprocessing.py +++ b/Lib/test/test_multiprocessing.py @@ -1655,6 +1655,23 @@ class _TestPool(BaseTestCase): self.assertEqual(self.pool.starmap_async(mul, tuples).get(), list(itertools.starmap(mul, tuples))) + def test_map_async(self): + self.assertEqual(self.pool.map_async(sqr, list(range(10))).get(), + list(map(sqr, list(range(10))))) + + def test_map_async_callbacks(self): + call_args = self.manager.list() if self.TYPE == 'manager' else [] + self.pool.map_async(int, ['1'], + callback=call_args.append, + error_callback=call_args.append).wait() + self.assertEqual(1, len(call_args)) + self.assertEqual([1], call_args[0]) + self.pool.map_async(int, ['a'], + callback=call_args.append, + error_callback=call_args.append).wait() + self.assertEqual(2, len(call_args)) + self.assertIsInstance(call_args[1], ValueError) + def test_map_chunksize(self): try: self.pool.map_async(sqr, [], chunksize=1).get(timeout=TIMEOUT1) @@ -594,6 +594,7 @@ Jan Kaliszewski Peter van Kampen Rafe Kaplan Jacob Kaplan-Moss +Janne Karila Per Øyvind Karlsen Lou Kates Hiroaki Kawai @@ -62,6 +62,9 @@ Core and Builtins Library ------- +- Issue #16307: Fix multiprocessing.Pool.map_async not calling its callbacks. + Patch by Janne Karila. + - Issue #16305: Fix a segmentation fault occurring when interrupting math.factorial. |