File tree 2 files changed +5
-2
lines changed
2 files changed +5
-2
lines changed Original file line number Diff line number Diff line change @@ -106,15 +106,15 @@ def __init__(*args, **kw):
106
106
self , * args = args
107
107
if len (args ) > 1 :
108
108
raise TypeError ('expected at most 1 arguments, got %d' % len (args ))
109
- def remove (wr , selfref = ref (self )):
109
+ def remove (wr , selfref = ref (self ), _atomic_removal = _remove_dead_weakref ):
110
110
self = selfref ()
111
111
if self is not None :
112
112
if self ._iterating :
113
113
self ._pending_removals .append (wr .key )
114
114
else :
115
115
# Atomic removal is necessary since this function
116
116
# can be called asynchronously by the GC
117
- _remove_dead_weakref (d , wr .key )
117
+ _atomic_removal (d , wr .key )
118
118
self ._remove = remove
119
119
# A list of keys to be removed
120
120
self ._pending_removals = []
Original file line number Diff line number Diff line change @@ -23,6 +23,9 @@ Extension Modules
23
23
Library
24
24
-------
25
25
26
+ - Issue #29519: Fix weakref spewing exceptions during interpreter shutdown
27
+ when used with a rare combination of multiprocessing and custom codecs.
28
+
26
29
- Issue #29416: Prevent infinite loop in pathlib.Path.mkdir
27
30
28
31
- Issue #29444: Fixed out-of-bounds buffer access in the group() method of
You can’t perform that action at this time.
0 commit comments