Title: [211815] trunk/Source/WebCore
Revision
211815
Author
carlo...@webkit.org
Date
2017-02-07 10:04:50 -0800 (Tue, 07 Feb 2017)

Log Message

[GStreamer] Deadlock when media player is destroyed
https://bugs.webkit.org/show_bug.cgi?id=167861

Reviewed by Michael Catanzaro.

The problem is that we are calling notifyOne() for the draw mutex without taking the lock.

* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::MediaPlayerPrivateGStreamerBase::repaint):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (211814 => 211815)


--- trunk/Source/WebCore/ChangeLog	2017-02-07 17:59:16 UTC (rev 211814)
+++ trunk/Source/WebCore/ChangeLog	2017-02-07 18:04:50 UTC (rev 211815)
@@ -1,3 +1,15 @@
+2017-02-07  Carlos Garcia Campos  <cgar...@igalia.com>
+
+        [GStreamer] Deadlock when media player is destroyed
+        https://bugs.webkit.org/show_bug.cgi?id=167861
+
+        Reviewed by Michael Catanzaro.
+
+        The problem is that we are calling notifyOne() for the draw mutex without taking the lock.
+
+        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
+        (WebCore::MediaPlayerPrivateGStreamerBase::repaint):
+
 2017-02-07  Zan Dobersek  <zdober...@igalia.com>
 
         MediaSourceClientGStreamerMSE: wrap FastMalloc-ed memory into pipeline-bound GstBuffers

Modified: trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp (211814 => 211815)


--- trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp	2017-02-07 17:59:16 UTC (rev 211814)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp	2017-02-07 18:04:50 UTC (rev 211815)
@@ -711,6 +711,7 @@
     if (m_renderingCanBeAccelerated && client()) {
         client()->setPlatformLayerNeedsDisplay();
 #if USE(GSTREAMER_GL)
+        LockHolder lock(m_drawMutex);
         m_drawCondition.notifyOne();
 #endif
         return;
@@ -720,6 +721,7 @@
     m_player->repaint();
 
 #if USE(GSTREAMER_GL) || USE(COORDINATED_GRAPHICS_THREADED)
+    LockHolder lock(m_drawMutex);
     m_drawCondition.notifyOne();
 #endif
 }
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to