diff options
author | Benjamin Peterson <benjamin@python.org> | 2009-03-31 21:06:30 +0000 |
---|---|---|
committer | Benjamin Peterson <benjamin@python.org> | 2009-03-31 21:06:30 +0000 |
commit | bd9dd31abdb81c81242aa9ab081d90db17eef0c0 (patch) | |
tree | 845b88b5899cd7f7929fd13bcd6b8cc6b591f0ae /Lib/threading.py | |
parent | 186188d89dc1069f1cfd64811fe8e92f0c9d6774 (diff) | |
download | cpython-git-bd9dd31abdb81c81242aa9ab081d90db17eef0c0.tar.gz |
take the usual lock precautions around _active_limbo_lock
Diffstat (limited to 'Lib/threading.py')
-rw-r--r-- | Lib/threading.py | 34 |
1 files changed, 13 insertions, 21 deletions
diff --git a/Lib/threading.py b/Lib/threading.py index cc2be1b860..28a8a2f946 100644 --- a/Lib/threading.py +++ b/Lib/threading.py @@ -466,9 +466,8 @@ class Thread(_Verbose): raise RuntimeError("thread already started") if __debug__: self._note("%s.start(): starting thread", self) - _active_limbo_lock.acquire() - _limbo[self] = self - _active_limbo_lock.release() + with _active_limbo_lock: + _limbo[self] = self _start_new_thread(self.__bootstrap, ()) self.__started.wait() @@ -505,10 +504,9 @@ class Thread(_Verbose): try: self.__ident = _get_ident() self.__started.set() - _active_limbo_lock.acquire() - _active[self.__ident] = self - del _limbo[self] - _active_limbo_lock.release() + with _active_limbo_lock: + _active[self.__ident] = self + del _limbo[self] if __debug__: self._note("%s.__bootstrap(): thread started", self) @@ -735,9 +733,8 @@ class _MainThread(Thread): def __init__(self): Thread.__init__(self, name="MainThread") self._Thread__started.set() - _active_limbo_lock.acquire() - _active[_get_ident()] = self - _active_limbo_lock.release() + with _active_limbo_lock: + _active[_get_ident()] = self def _set_daemon(self): return False @@ -781,9 +778,8 @@ class _DummyThread(Thread): del self._Thread__block self._Thread__started.set() - _active_limbo_lock.acquire() - _active[_get_ident()] = self - _active_limbo_lock.release() + with _active_limbo_lock: + _active[_get_ident()] = self def _set_daemon(self): return True @@ -804,18 +800,14 @@ def currentThread(): current_thread = currentThread def activeCount(): - _active_limbo_lock.acquire() - count = len(_active) + len(_limbo) - _active_limbo_lock.release() - return count + with _active_limbo_lock: + return len(_active) + len(_limbo) active_count = activeCount def enumerate(): - _active_limbo_lock.acquire() - active = _active.values() + _limbo.values() - _active_limbo_lock.release() - return active + with _active_limbo_lock: + return _active.values() + _limbo.values() from thread import stack_size |