summaryrefslogtreecommitdiff
path: root/Lib/_threading_local.py
diff options
context:
space:
mode:
authorAntoine Pitrou <solipsis@pitrou.net>2010-08-28 18:29:13 +0000
committerAntoine Pitrou <solipsis@pitrou.net>2010-08-28 18:29:13 +0000
commita408350a08d4aadaec7573648ab91651c32a90df (patch)
tree717563d43e1d65ed46661ba04508513146946e52 /Lib/_threading_local.py
parent7e8fd5ed22f19ede1290fdc692c607556d4e16da (diff)
downloadcpython-git-a408350a08d4aadaec7573648ab91651c32a90df.tar.gz
Merged revisions 84344 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k ........ r84344 | antoine.pitrou | 2010-08-28 20:17:03 +0200 (sam., 28 août 2010) | 4 lines Issue #1868: Eliminate subtle timing issues in thread-local objects by getting rid of the cached copy of thread-local attribute dictionary. ........
Diffstat (limited to 'Lib/_threading_local.py')
-rw-r--r--Lib/_threading_local.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/Lib/_threading_local.py b/Lib/_threading_local.py
index e953597005..09a3515bdb 100644
--- a/Lib/_threading_local.py
+++ b/Lib/_threading_local.py
@@ -195,6 +195,10 @@ class local(_localbase):
lock.release()
def __setattr__(self, name, value):
+ if name == '__dict__':
+ raise AttributeError(
+ "%r object attribute '__dict__' is read-only"
+ % self.__class__.__name__)
lock = object.__getattribute__(self, '_local__lock')
lock.acquire()
try:
@@ -204,6 +208,10 @@ class local(_localbase):
lock.release()
def __delattr__(self, name):
+ if name == '__dict__':
+ raise AttributeError(
+ "%r object attribute '__dict__' is read-only"
+ % self.__class__.__name__)
lock = object.__getattribute__(self, '_local__lock')
lock.acquire()
try: