[webkit-changes] [WebKit/WebKit] 4cc06b: WorkQueue should inherit from SerialFunctionDispat...

Jean-Yves Avenard noreply at github.com
Tue Sep 5 03:53:05 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 4cc06b4be14a60c0b72098fa3e32ccb98657d525
      https://github.com/WebKit/WebKit/commit/4cc06b4be14a60c0b72098fa3e32ccb98657d525
  Author: Jean-Yves Avenard <jya at apple.com>
  Date:   2023-09-05 (Tue, 05 Sep 2023)

  Changed paths:
    M Source/WTF/wtf/FunctionDispatcher.h
    M Source/WTF/wtf/SuspendableWorkQueue.cpp
    M Source/WTF/wtf/SuspendableWorkQueue.h
    M Source/WTF/wtf/WorkQueue.cpp
    M Source/WTF/wtf/WorkQueue.h
    M Source/WTF/wtf/cocoa/WorkQueueCocoa.cpp
    M Source/WTF/wtf/generic/WorkQueueGeneric.cpp

  Log Message:
  -----------
  WorkQueue should inherit from SerialFunctionDispatcher
https://bugs.webkit.org/show_bug.cgi?id=260779
rdar://114535523

Reviewed by Kimmo Kinnunen.

Make WorkQueue inherit from SerialFunctionDispatcher so that it can be
used similarly to RunLoop and WorkerOrWorkletThread.

Needed for this change to compile:
- Export the whole class to get the multiple inheritance to
  work across binaries.
- When exporting WorkQueue, it will export function with OSObjectPtr<dispatch_queue_t>.
  This has different type in Obj-C and in C++. If the type is used in both,
  then there will be unresolved symbol since C++ type is used when creating
  the library (WorkQueue.cpp), as such remove method prototype from WorkQueue
  and have a single WorkQueue constructor taking an enum instead.

Ideally, we would implement only bug 261080, but there are futher issues
getting it done. So to not block other works depending on this change,
we push this version first.

* Source/WTF/wtf/FunctionDispatcher.h:
* Source/WTF/wtf/SuspendableWorkQueue.cpp:
(WTF::SuspendableWorkQueue::stateString):
* Source/WTF/wtf/SuspendableWorkQueue.h:
* Source/WTF/wtf/WorkQueue.cpp:
(WTF::WorkQueue::main):
(WTF::WorkQueue::dispatch):
(WTF::WorkQueue::assertIsCurrent const):
(WTF::ConcurrentWorkQueue::dispatch):
* Source/WTF/wtf/WorkQueue.h:
(WTF::WTF_ASSERTS_ACQUIRED_CAPABILITY): Deleted.
* Source/WTF/wtf/cocoa/WorkQueueCocoa.cpp:
(WTF::WorkQueue::WorkQueue):
(WTF::WorkQueue::constructMainWorkQueue): Deleted.
* Source/WTF/wtf/generic/WorkQueueGeneric.cpp:
(WTF::WorkQueue::WorkQueue):
(WTF::WorkQueue::constructMainWorkQueue): Deleted.

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




More information about the webkit-changes mailing list