• Tim Peters's avatar
    SF 742860: WeakKeyDictionary __delitem__ uses iterkeys · 886128f4
    Tim Peters yazdı
    Someone review this, please!  Final releases are getting close, Fred
    (the weakref guy) won't be around until Tuesday, and the pre-patch
    code can indeed raise spurious RuntimeErrors in the presence of
    threads or mutating comparison functions.
    
    See the bug report for my confusions:  I can't see any reason for why
    __delitem__ iterated over the keys.  The new one-liner implementation
    is much faster, can't raise RuntimeError, and should be better-behaved
    in all respects wrt threads.
    
    New tests test_weak_keyed_bad_delitem and
    test_weak_keyed_cascading_deletes fail before this patch.
    
    Bugfix candidate for 2.2.3 too, if someone else agrees with this patch.
    886128f4
weakref.py 7.47 KB