]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
The backport gets Fred's seal of approval:
authorBarry Warsaw <barry@python.org>
Wed, 28 May 2003 23:03:30 +0000 (23:03 +0000)
committerBarry Warsaw <barry@python.org>
Wed, 28 May 2003 23:03:30 +0000 (23:03 +0000)
commit39a8fddb1507593ebc8449ddcecd30ddaca69931
treed844ab57fc53f5a90d9b4feb4a16e64c0a7e3813
parent7496e18f621c9be641c7f4fef909a6ee66e0d6dd
The backport gets Fred's seal of approval:

    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.
Lib/test/test_weakref.py
Lib/weakref.py