Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 2eedeabcb721282641ccc06a25be24cca67ad8df
      
https://github.com/WebKit/WebKit/commit/2eedeabcb721282641ccc06a25be24cca67ad8df
  Author: Yusuke Suzuki <[email protected]>
  Date:   2026-08-24 (Mon, 24 Aug 2026)

  Changed paths:
    M Source/JavaScriptCore/heap/Heap.cpp
    M Source/JavaScriptCore/heap/Heap.h
    M Source/JavaScriptCore/heap/SlotVisitor.cpp

  Log Message:
  -----------
  [JSC] Stop broadcasting to every parallel marker when a bonus visitor task 
ends
https://bugs.webkit.org/show_bug.cgi?id=322451
rdar://185735562

Reviewed by Yijia Huang.

Heap::runTaskInParallel() publishes a bonus task, runs it on the collector
visitor (collector thread), then clears it. And both setting and
clearing a bonus task (for parallel visitors) notify
m_markingConditionVariable. While publishing a bonus task requires
broadcasting notification, clearing does not need it since it just
reduces a possible task. Also, we do not need to notify
m_markingConditionVariable when clearing a bonus task in drainFromShared
too. We add m_bonusVisitorTaskConditionVariable to signal it to the
collector thread.

* Source/JavaScriptCore/heap/Heap.cpp:
(JSC::Heap::clearConcurrentRetainedDataIfPossible):
* Source/JavaScriptCore/heap/Heap.h:
* Source/JavaScriptCore/heap/SlotVisitor.cpp:
(JSC::SlotVisitor::drainFromShared):

Canonical link: https://commits.webkit.org/319764@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to