wpe: Run frameComplete outside of images mutex scope

If the mutex is locked while running frameComplete there is a potential deadlock
bound to happen when we get a new exported images from the backend.

Fixes #1101
This commit is contained in:
Philippe Normand 2019-10-19 12:48:55 +01:00
parent 5a9541caff
commit 0f03e33b03

View file

@ -270,6 +270,8 @@ bool WPEThreadedView::initialize(GstWpeSrc* src, GstGLContext* context, GstGLDis
GstEGLImage* WPEThreadedView::image()
{
GstEGLImage* ret = nullptr;
{
GMutexHolder lock(images.mutex);
GST_TRACE("pending %" GST_PTR_FORMAT " (%d) committed %" GST_PTR_FORMAT " (%d)", images.pending,
@ -286,11 +288,13 @@ GstEGLImage* WPEThreadedView::image()
gst_egl_image_unref(previousImage);
}
if (images.committed) {
if (images.committed)
ret = images.committed;
frameComplete();
}
if (ret)
frameComplete();
return ret;
}