[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