• Barry Warsaw's avatar
    The backport gets Fred's seal of approval: · 39a8fddb
    Barry Warsaw yazdı
        SF 742860: WeakKeyDictionary __delitem__ uses iterkeys
    
        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.
    
    Backported the tests and the patch.
    39a8fddb
weakref.py 6.99 KB