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

Reply via email to