WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
141820
RunLoop::dispatch() should drop the mutex before calling wakeUp().
https://bugs.webkit.org/show_bug.cgi?id=141820
Summary
RunLoop::dispatch() should drop the mutex before calling wakeUp().
Simon Fraser (smfr)
Reported
2015-02-19 18:03:24 PST
It's possible for RunLoop::performWork() to return without handling all the functions in the queue. In that case, CF is going to unset the CFRunLoopSource "signaled" state, which means that source won't get processed again until RunLoop::dispatch is called. We should re-signal the source at the end of RunLoop::performWork() if there's still work to do. This is OK, because CF unsets the signaled bit before it calls us. Also, RunLoop::dispatch() should drop the mutex before calling wakeUp().
Attachments
Patch
(1.33 KB, patch)
2015-02-19 18:32 PST
,
Simon Fraser (smfr)
no flags
Details
Formatted Diff
Diff
View All
Add attachment
proposed patch, testcase, etc.
Simon Fraser (smfr)
Comment 1
2015-02-19 18:28:34 PST
Never mind. If something was added to the m_functionQueue inside of RunLoop::performWork(), it would have had to have been via RunLoop::dispatch, which would have signaled. So I'll just keep this for the mutex fix.
Simon Fraser (smfr)
Comment 2
2015-02-19 18:32:31 PST
Created
attachment 246931
[details]
Patch
WebKit Commit Bot
Comment 3
2015-02-20 11:36:13 PST
Comment on
attachment 246931
[details]
Patch Clearing flags on attachment: 246931 Committed
r180434
: <
http://trac.webkit.org/changeset/180434
>
WebKit Commit Bot
Comment 4
2015-02-20 11:36:18 PST
All reviewed patches have been landed. Closing bug.
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