WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
Bug 195208
[ThreadedCompositor] Simplify the compositing run loop worker thread
https://bugs.webkit.org/show_bug.cgi?id=195208
Summary
[ThreadedCompositor] Simplify the compositing run loop worker thread
Carlos Garcia Campos
Reported
2019-03-01 06:54:35 PST
We can remove the WorkQueuePool, since we never really supported more than one thread, and now that single process model non longer exists it doesn't even make sense. We can simply use a RunLoop instead of a WorkQueue so that the implementation is not specific to the generic WorkQueue implementation.
Attachments
Patch
(7.58 KB, patch)
2019-03-01 06:57 PST
,
Carlos Garcia Campos
no flags
Details
Formatted Diff
Diff
View All
Add attachment
proposed patch, testcase, etc.
Carlos Garcia Campos
Comment 1
2019-03-01 06:57:44 PST
Created
attachment 363328
[details]
Patch
WebKit Commit Bot
Comment 2
2019-03-01 10:08:05 PST
Comment on
attachment 363328
[details]
Patch Clearing flags on attachment: 363328 Committed
r242266
: <
https://trac.webkit.org/changeset/242266
>
WebKit Commit Bot
Comment 3
2019-03-01 10:08:07 PST
All reviewed patches have been landed. Closing bug.
Radar WebKit Bug Importer
Comment 4
2019-03-01 10:09:47 PST
<
rdar://problem/48513504
>
Don Olmstead
Comment 5
2019-03-01 10:37:15 PST
***
Bug 186444
has been marked as a duplicate of this bug. ***
Fujii Hironori
Comment 6
2019-03-03 22:29:00 PST
Comment on
attachment 363328
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=363328&action=review
> Source/WebKit/Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp:76 > + });
Why do you dispatch twice? Can this code be simplified like the following? m_runLoop->dispatch([] { RunLoop::current().stop(); });
Carlos Garcia Campos
Comment 7
2019-03-04 01:47:43 PST
Comment on
attachment 363328
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=363328&action=review
>> Source/WebKit/Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp:76 >> + }); > > Why do you dispatch twice? > Can this code be simplified like the following? > > m_runLoop->dispatch([] { > RunLoop::current().stop(); > });
No, we used to get a crash if the run loop was stopped before the timer was destroyed. So, we stop the run loop in the next main frame iteration. See
bug #167545
. Maybe it's no longer needed now that we don't use a WorkQueue.
Fujii Hironori
Comment 8
2019-03-04 05:58:19 PST
It seems the original issue of
Bug 167545
was a race condition of: 1. Main threaed is deleting the WorkQueue 2. The WorkQueue's thread is executing a task I think my change (
comment 6
) works. I'm going to file a ticket for the change. This code is causing a issue for WinCairo (
Bug 186364 Comment 11
).
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug