Index: Lib/_threading_local.py =================================================================== --- Lib/_threading_local.py (revision 60205) +++ Lib/_threading_local.py (working copy) @@ -187,30 +187,21 @@ def __getattribute__(self, name): lock = object.__getattribute__(self, '_local__lock') - lock.acquire() - try: + with lock: _patch(self) return object.__getattribute__(self, name) - finally: - lock.release() def __setattr__(self, name, value): lock = object.__getattribute__(self, '_local__lock') - lock.acquire() - try: + with lock: _patch(self) return object.__setattr__(self, name, value) - finally: - lock.release() def __delattr__(self, name): lock = object.__getattribute__(self, '_local__lock') - lock.acquire() - try: + with lock: _patch(self) return object.__delattr__(self, name) - finally: - lock.release() def __del__(self): import threading