[Xfce4-commits] [apps/xfburn] 01/01: Bug #14857 : Fix crashing on FreeBSD

noreply at xfce.org noreply at xfce.org
Mon Apr 22 00:18:14 CEST 2019


This is an automated email from the git hooks/post-receive script.

s   k   u   n   n   y   k       p   u   s   h   e   d       a       c   o   m   m   i   t       t   o       b   r   a   n   c   h       m   a   s   t   e   r   
   in repository apps/xfburn.

commit 81ca7f2a6badb6d559a1970ae481a4b0bcf88ab5
Author: Guido Falsi <madpilot at FreeBSD.org>
Date:   Sun Apr 21 23:58:28 2019 +0200

    Bug #14857 : Fix crashing on FreeBSD
    
    - xfburn crashing on FreeBSD when burning audio CDs (gst mutex locking issue)
---
 xfburn/xfburn-transcoder-gst.c | 16 +++++-----------
 1 file changed, 5 insertions(+), 11 deletions(-)

diff --git a/xfburn/xfburn-transcoder-gst.c b/xfburn/xfburn-transcoder-gst.c
index 7318db4..d35ed33 100644
--- a/xfburn/xfburn-transcoder-gst.c
+++ b/xfburn/xfburn-transcoder-gst.c
@@ -222,7 +222,7 @@ xfburn_transcoder_gst_init (XfburnTranscoderGst * obj)
   /* if the mutex is locked, then we're not currently seeking
    * information from gst */
   g_mutex_init (&priv->gst_mutex);
-  g_mutex_lock (&priv->gst_mutex);
+  /* Actual lock acquired in prepare() and relased in finish() */
 
   priv->discoverer = gst_discoverer_new(GST_SECOND, NULL);
 }
@@ -492,19 +492,9 @@ bus_call (GstBus *bus, GstMessage *msg, gpointer data)
 
           if (strcmp (GST_OBJECT_NAME (GST_MESSAGE_SRC (msg)), "decoder") != 0)
             break;
-          
-          if (!g_mutex_trylock (&priv->gst_mutex)) {
-            g_critical ("Lock held by another thread, can't signal transcoding start!");
-            break;
-          } else {
-#if DEBUG_GST > 0
-            DBG ("Locked mutex to signal transcoding start");
-#endif
-          }
 
           priv->gst_done = TRUE;
           g_cond_signal (&priv->gst_cond);
-          g_mutex_unlock (&priv->gst_mutex);
           break;
       } /* switch of priv->state */
 
@@ -835,6 +825,8 @@ prepare (XfburnTranscoder *trans, GError **error)
   gboolean ret;
   gint64 end_time;
 
+  g_mutex_lock(&priv->gst_mutex);
+
   priv->tracks = g_slist_reverse (priv->tracks);
 
   priv->state = XFBURN_TRANSCODER_GST_STATE_TRANSCODE_START;
@@ -933,6 +925,8 @@ finish (XfburnTranscoder *trans)
   }
   */
   recreate_pipeline (gst);
+
+  g_mutex_unlock (&priv->gst_mutex);
 }
 
 

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Xfce4-commits mailing list