Author: Armin Rigo <[email protected]>
Branch: stmgc-c8-gcc
Changeset: r79361:81b0687acb77
Date: 2015-09-01 18:11 +0200
http://bitbucket.org/pypy/pypy/changeset/81b0687acb77/
Log: threadlocalproperty: add the clear() method, to clear the value in
all threads. Bit of a hack.
diff --git a/lib_pypy/transaction.py b/lib_pypy/transaction.py
--- a/lib_pypy/transaction.py
+++ b/lib_pypy/transaction.py
@@ -239,12 +239,21 @@
def __init__(self, default_factory=None):
self.tl_default_factory = default_factory
self.tl_local = thread._local()
+ self.tl_all_threads = []
+
+ def clear(self, obj):
+ for wrefs in self.tl_all_threads:
+ try:
+ del wrefs[obj]
+ except KeyError:
+ pass
def tl_wrefs(self):
try:
return self.tl_local.wrefs
except AttributeError:
self.tl_local.wrefs = wrefs = weakkeyiddict()
+ self.tl_all_threads.append(wrefs)
return wrefs
def __get__(self, obj, cls=None):
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit