summaryrefslogtreecommitdiffstats
path: root/Misc
diff options
context:
space:
mode:
authorAmaury Forgeot d'Arc <amauryfa@gmail.com>2008-07-01 20:59:49 (GMT)
committerAmaury Forgeot d'Arc <amauryfa@gmail.com>2008-07-01 20:59:49 (GMT)
commitb15bdf7f7a736f49f783ab75904e6b2438449743 (patch)
treecf3edb347f78d01c4ee03d06c05fb107aedc9937 /Misc
parentceda6a67ce93dd9ac982ead61a23f98f85ea1821 (diff)
downloadcpython-b15bdf7f7a736f49f783ab75904e6b2438449743.zip
cpython-b15bdf7f7a736f49f783ab75904e6b2438449743.tar.gz
cpython-b15bdf7f7a736f49f783ab75904e6b2438449743.tar.bz2
#Issue3088 in-progress: Race condition with instances of classes derived from threading.local:
When a thread touches such an object for the first time, a new thread-local __dict__ is created, and the __init__ method is run. But a thread switch can occur here; if the other thread touches the same object, it installs another __dict__; when the first thread resumes, it updates the dictionary of the second... This is the deep cause of the failures in test_multiprocessing involving "managers" objects. Backport of r64601.
Diffstat (limited to 'Misc')
-rw-r--r--Misc/NEWS4
1 files changed, 4 insertions, 0 deletions
diff --git a/Misc/NEWS b/Misc/NEWS
index 4d6dd83..ebaefd4 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -16,6 +16,10 @@ Core and builtins
set to a custom object whose write() method happens to install
another file in sys.stdout.
+- Issue #3088: Corrected a race condition in classes derived from
+ threading.local: the first member set by a thread could be saved in
+ another thread's dictionary.
+
- Issue #3100: Corrected a crash on deallocation of a subclassed weakref which
holds the last (strong) reference to its referent.