GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | ||||||||||||||||||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | ||||||||||||||||||||||||
GeezerVison is showing github.com — Data race between lock-free `dict.get` (`_Py_dict_lookup_threadsafe`) and `dict.clear` · Issue #151228 · python/cpython Closed Closed Copy link Labels interpreter-core(Objects, Python, Grammar, and Parser dirs)(Objects, Python, Grammar, and Parser dirs)topic-free-threadingtype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error DescriptionBug reportBug description:
Lines 1577 to 1579 in ce916dc
so Lines 3035 to 3043 in ce916dc
Reproducer: from threading import Thread class C: pass obj = C() def thread1(): for _ in range(20000): obj.x = 1 obj.y = 2 obj.z = 3 obj.__dict__.clear() def thread2(): for _ in range(20000): obj.__dict__.get('x') threads = [Thread(target=thread1) for _ in range(1)] threads += [Thread(target=thread2) for _ in range(8)] for t in threads: t.start() for t in threads: t.join() TSAN Report: CPython versions tested on:CPython main branch Operating systems tested on:Linux Linked PRsActivity
MetadataMetadataAssigneesLabelsinterpreter-core(Objects, Python, Grammar, and Parser dirs)(Objects, Python, Grammar, and Parser dirs)topic-free-threadingtype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error ProjectsMilestoneRelationshipsDevelopmentIssue actions | ||||||||||||||||||||||||
| You are visitor 01402520 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |