[webkit-reviews] review denied: [Bug 202874] Using dispatch_async for faster task dispatch : [Attachment 380807] Patch

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Sat Oct 12 11:36:10 PDT 2019


Geoffrey Garen <ggaren at apple.com> has denied Sihui Liu <sihui_liu at apple.com>'s
request for review:
Bug 202874: Using dispatch_async for faster task dispatch
https://bugs.webkit.org/show_bug.cgi?id=202874

Attachment 380807: Patch

https://bugs.webkit.org/attachment.cgi?id=380807&action=review




--- Comment #2 from Geoffrey Garen <ggaren at apple.com> ---
Comment on attachment 380807
  --> https://bugs.webkit.org/attachment.cgi?id=380807
Patch

It looks like some tests are timing out. My best guess is that some calls to
RunLoop::dispatch() implicitly rely on ordering, and when we don’t use the
explicit function queue, we break that ordering. 

I think it’s worth testing dispatch_async as the implementation of wakeUp. (We
tested that once, but only with a broken patch that called isMain(), which is
incorrect). That way, we preserve ordering. 

I’d change wakeUp to take an argument indicating whether this == s_mainRunLoop.
Then, if true, the CF implementation should use dispatch_async to call the
function that executes all tasks, rather than CFRunLoopWakeup. 

If that’s not fast enough, or it breaks things, then we should just add an
inline function that calls dispatch_async or RunLoop::dispatch, depending on
platform. And then call that just from IDB code.


More information about the webkit-reviews mailing list