[Webkit-unassigned] [Bug 115351] Make sure ResourceHandleSoup::platformSetDefersLoading() does not call ResourceHandleClient callbacks synchronously

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Apr 29 09:02:03 PDT 2013


https://bugs.webkit.org/show_bug.cgi?id=115351





--- Comment #5 from Andre Moreira Magalhaes <andrunko at gmail.com>  2013-04-29 09:00:24 PST ---
(In reply to comment #4)
> (In reply to comment #3)
> > (In reply to comment #2)
> > > Is the issue that GStreamer is calling ResourceHandle methods from another thread?
> > 
> > Yes, see https://bugs.webkit.org/show_bug.cgi?id=115352#c5 for more details.
> 
> We really cannot afford to push this complexity into the ResourceHandle. The GStreamer element needs to ensure that every interaction with WebCore is already on the WebCore thread.

I am not sure why this is the case as the callbacks are already called asynchronously when there isn't a deferred result. What I see here is an inconsistency in the ResourceHandleSoup where it sometimes invokes the callbacks synchronously and sometimes asynchronously. The problem is not the gst player calling this from a different thread (WebCore methods are called from main thread), the problem is that the methods calling setDefersLoading is protected by a mutex and the same is true for the callbacks for data IIRC, thus invoking the data callback when calling setDefersLoading causes a deadlock in the gst source element.

The same method having 2 different behaviours looks wrong to me, but feel free to reject here if you don't agree with the change.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.


More information about the webkit-unassigned mailing list