[Webkit-unassigned] [Bug 159552] [GStreamer] crash within Threaded compositor

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Fri Jul 8 04:18:04 PDT 2016


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

--- Comment #4 from Carlos Garcia Campos <cgarcia at igalia.com> ---
(In reply to comment #3)
> Comment on attachment 283134 [details]
> patch
> 
> View in context:
> https://bugs.webkit.org/attachment.cgi?id=283134&action=review
> 
> > Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:553
> > -        m_player->sizeChanged();
> > +        RunLoop::main().dispatch([this] { m_player->sizeChanged(); });
> 
> Are you sure this is because of the threaded compositor and not because of
> GStreamerGL. Because I think in case of not using GSTGL, triggerRepaint is
> called in the main thread. In case of being in the main thread we would be
> scheduling this unnecessarily. Also, if the instance is destroyed before the
> source is dispatches in the main thread, this will crash, so you would need
> to protect this. It would be better if we could use the main thread notifier
> for this, but it's int he derived class not here in the base class.

We already have a weak factory for this, so could you do something like this:

if (isMainThread())
    m_player->sizeChanged();
else {
    auto weakThis = player.createWeakPtr();
    RunLoop::main().dispatch([weakThis]) { 
        if (weakThis)
            weakThis->m_player->sizeChanged();
    });
}

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.webkit.org/pipermail/webkit-unassigned/attachments/20160708/d56c53b5/attachment.html>


More information about the webkit-unassigned mailing list