Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 0c5600b9794df33fca2fc34c2fd6bda39bde9909
https://github.com/WebKit/WebKit/commit/0c5600b9794df33fca2fc34c2fd6bda39bde9909
Author: Dan Blackwell <[email protected]>
Date: 2026-05-07 (Thu, 07 May 2026)
Changed paths:
M Source/JavaScriptCore/heap/MarkedBlock.h
M Source/WTF/wtf/BitSet.h
Log Message:
-----------
[TSan] Add BitSet::concurrentGet for MarkedBlock mark-bit reads
https://bugs.webkit.org/show_bug.cgi?id=313435
Reviewed by Keith Miller.
MarkedBlock::isMarked reads m_marks while concurrent GC workers may
testAndSetMarked the same word. The existing get() is a plain load;
add concurrentGet() that does a relaxed atomic load of the word so
TSan recognises the access as intentional concurrent read. No
ordering change (Dependency already provides consume ordering on
the version check); this only changes how TSan models the load.
The two MarkedBlock::isMarked overloads were the only callers passing
a Dependency to get(); now that they use concurrentGet(), drop the
unused Dependency parameter from get() so future concurrent readers
reach for concurrentGet() rather than the non-atomic path.
* Source/JavaScriptCore/heap/MarkedBlock.h:
(JSC::MarkedBlock::isMarked):
* Source/WTF/wtf/BitSet.h:
(WTF::BitSet::get const):
(WTF::BitSet::concurrentGet const):
Canonical link: https://commits.webkit.org/312852@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications