From 80a5be1d84689a680900ff4900acb2a39ec6d2a8 Mon Sep 17 00:00:00 2001 From: Richard Oudkerk Date: Sun, 23 Mar 2014 12:30:54 +0000 Subject: Issue #20980: Stop wrapping exception when using ThreadPool. --- Lib/multiprocessing/managers.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'Lib/multiprocessing/managers.py') diff --git a/Lib/multiprocessing/managers.py b/Lib/multiprocessing/managers.py index cc87d36612..66d46fcc2a 100644 --- a/Lib/multiprocessing/managers.py +++ b/Lib/multiprocessing/managers.py @@ -1077,17 +1077,22 @@ ArrayProxy = MakeProxyType('ArrayProxy', ( )) -PoolProxy = MakeProxyType('PoolProxy', ( +BasePoolProxy = MakeProxyType('PoolProxy', ( 'apply', 'apply_async', 'close', 'imap', 'imap_unordered', 'join', - 'map', 'map_async', 'starmap', 'starmap_async', 'terminate' + 'map', 'map_async', 'starmap', 'starmap_async', 'terminate', )) -PoolProxy._method_to_typeid_ = { +BasePoolProxy._method_to_typeid_ = { 'apply_async': 'AsyncResult', 'map_async': 'AsyncResult', 'starmap_async': 'AsyncResult', 'imap': 'Iterator', 'imap_unordered': 'Iterator' } +class PoolProxy(BasePoolProxy): + def __enter__(self): + return self + def __exit__(self, exc_type, exc_val, exc_tb): + self.terminate() # # Definition of SyncManager -- cgit v1.2.1