summaryrefslogtreecommitdiffstats
path: root/Lib/multiprocessing
diff options
context:
space:
mode:
authorRichard Oudkerk <shibturn@gmail.com>2013-04-17 20:09:38 (GMT)
committerRichard Oudkerk <shibturn@gmail.com>2013-04-17 20:09:38 (GMT)
commitb147f60a3840e59ded58a7cb4a9db1305743302a (patch)
tree84a083db6ad5956e653182722a2e7d4a69bf4eb8 /Lib/multiprocessing
parentc149902175801a448dea3b8c2fa3f496116ce311 (diff)
parent409c31390f839debb2f05cef691e8b59e52bd524 (diff)
downloadcpython-b147f60a3840e59ded58a7cb4a9db1305743302a.zip
cpython-b147f60a3840e59ded58a7cb4a9db1305743302a.tar.gz
cpython-b147f60a3840e59ded58a7cb4a9db1305743302a.tar.bz2
Issue #17555: Fix ForkAwareThreadLock so that size of after fork
registry does not grow exponentially with generation of process.
Diffstat (limited to 'Lib/multiprocessing')
-rw-r--r--Lib/multiprocessing/util.py5
1 files changed, 4 insertions, 1 deletions
diff --git a/Lib/multiprocessing/util.py b/Lib/multiprocessing/util.py
index 72385a8..f5862b4 100644
--- a/Lib/multiprocessing/util.py
+++ b/Lib/multiprocessing/util.py
@@ -322,10 +322,13 @@ atexit.register(_exit_function)
class ForkAwareThreadLock(object):
def __init__(self):
+ self._reset()
+ register_after_fork(self, ForkAwareThreadLock._reset)
+
+ def _reset(self):
self._lock = threading.Lock()
self.acquire = self._lock.acquire
self.release = self._lock.release
- register_after_fork(self, ForkAwareThreadLock.__init__)
class ForkAwareLocal(threading.local):
def __init__(self):