changeset: 106487:e91ec62da088 parent: 106484:b1f4ace59eb9 parent: 106486:c5267272e66a user: Ɓukasz Langa date: Fri Feb 10 00:20:16 2017 -0800 files: Misc/NEWS description: Merge 3.6 (fix #29519) diff -r b1f4ace59eb9 -r e91ec62da088 Lib/weakref.py --- a/Lib/weakref.py Thu Feb 09 22:35:38 2017 -0800 +++ b/Lib/weakref.py Fri Feb 10 00:20:16 2017 -0800 @@ -106,7 +106,7 @@ self, *args = args if len(args) > 1: raise TypeError('expected at most 1 arguments, got %d' % len(args)) - def remove(wr, selfref=ref(self)): + def remove(wr, selfref=ref(self), _atomic_removal=_remove_dead_weakref): self = selfref() if self is not None: if self._iterating: @@ -114,7 +114,7 @@ else: # Atomic removal is necessary since this function # can be called asynchronously by the GC - _remove_dead_weakref(d, wr.key) + _atomic_removal(d, wr.key) self._remove = remove # A list of keys to be removed self._pending_removals = []