DisplayRefreshMonitor has a mutex to protect m_scheduled and m_previousFrameDone. Those flags are used to signal between the UI thread and WebKit thread. m_scheduled signals when a frame has been requested by WebKit thread. m_previousFrameDone indicates whether the frame change signaled by UI thread has been performed by WebKit thread. Since both UI thread and WebKit thread lock m_mutex, it is possible for the UI thread to block waiting for the WebKit thread. This is unnecessary: if the UI thread cannot immediately lock the mutex, it can deal with those flags on the next animation tick.
Created attachment 143609 [details] Patch
Comment on attachment 143609 [details] Patch Clearing flags on attachment: 143609 Committed r118230: <http://trac.webkit.org/changeset/118230>
All reviewed patches have been landed. Closing bug.