Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: e0c479c2e8bdc4473d872db99d4c3dcefa81e87d
      
https://github.com/WebKit/WebKit/commit/e0c479c2e8bdc4473d872db99d4c3dcefa81e87d
  Author: Yusuke Suzuki <[email protected]>
  Date:   2023-11-29 (Wed, 29 Nov 2023)

  Changed paths:
    M Source/JavaScriptCore/heap/EdenGCActivityCallback.cpp
    M Source/JavaScriptCore/heap/EdenGCActivityCallback.h
    M Source/JavaScriptCore/heap/FullGCActivityCallback.cpp
    M Source/JavaScriptCore/heap/FullGCActivityCallback.h
    M Source/JavaScriptCore/heap/GCActivityCallback.cpp
    M Source/JavaScriptCore/heap/GCActivityCallback.h
    M Source/JavaScriptCore/heap/Synchronousness.h
    M Source/WebCore/page/OpportunisticTaskScheduler.cpp
    M Source/WebCore/page/OpportunisticTaskScheduler.h

  Log Message:
  -----------
  [JSC] Use synchronous GCActivityCallback GC with RunLoopObserver
https://bugs.webkit.org/show_bug.cgi?id=265515
rdar://118930139

Reviewed by Wenson Hsieh.

Now we can schedule GC only when we are idle from GCActivityCallback. So we do 
not need to run async version.
This patch changes two things.

1. We set up RunLoopObserver and run GC when RunLoop gets idle state after 
GCActivityCallback detects GC opportunities.
2. We use sync GC instead of async GC since we now run this only when we are 
idle. We do not need to run async version.

* Source/JavaScriptCore/heap/EdenGCActivityCallback.cpp:
(JSC::EdenGCActivityCallback::EdenGCActivityCallback):
(JSC::EdenGCActivityCallback::doCollection):
* Source/JavaScriptCore/heap/EdenGCActivityCallback.h:
(JSC::EdenGCActivityCallback::tryCreate):
* Source/JavaScriptCore/heap/FullGCActivityCallback.cpp:
(JSC::FullGCActivityCallback::FullGCActivityCallback):
(JSC::FullGCActivityCallback::doCollection):
* Source/JavaScriptCore/heap/FullGCActivityCallback.h:
(JSC::FullGCActivityCallback::tryCreate):
* Source/JavaScriptCore/heap/GCActivityCallback.cpp:
(JSC::GCActivityCallback::GCActivityCallback):
* Source/JavaScriptCore/heap/GCActivityCallback.h:
* Source/JavaScriptCore/heap/Synchronousness.h:
* Source/WebCore/page/OpportunisticTaskScheduler.cpp:
(WebCore::OpportunisticTaskScheduler::FullGCActivityCallback::FullGCActivityCallback):
(WebCore::OpportunisticTaskScheduler::FullGCActivityCallback::doCollection):
(WebCore::OpportunisticTaskScheduler::EdenGCActivityCallback::EdenGCActivityCallback):
(WebCore::OpportunisticTaskScheduler::EdenGCActivityCallback::doCollection):
* Source/WebCore/page/OpportunisticTaskScheduler.h:

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


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to