gst/gstparse.c: Also remove reentrance checks if flex is MT save (#348179)
authorStefan Kost <ensonic@users.sourceforge.net>
Fri, 21 Jul 2006 18:52:30 +0000 (18:52 +0000)
committerStefan Kost <ensonic@users.sourceforge.net>
Fri, 21 Jul 2006 18:52:30 +0000 (18:52 +0000)
Original commit message from CVS:
* gst/gstparse.c: (gst_parse_launch):
Also remove reentrance checks if flex is MT save (#348179)
Fix my empty ChangeLog entry below

ChangeLog
gst/gstparse.c

index 3db3cd0855963175f9a14866d8eb71c5ca0eff7d..9fb1d469e541ed315e743b281d8dc1a8bec5b612 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2006-07-21  Stefan Kost  <ensonic@users.sf.net>
+
+       * gst/gstparse.c: (gst_parse_launch):
+          Also remove reentrance checks if flex is MT save (#348179)
+          Fix my empty ChangeLog entry below
+
 2006-07-21  Andy Wingo  <wingo@pobox.com>
 
        * docs/libs/gstreamer-libs-sections.txt: Attempt to pacify buildbot.
@@ -14,6 +20,8 @@
 
        * configure.ac:
        * gst/gstparse.c: (gst_parse_launch):
+          Check for flex version and omit mutex if we have a MT save flex
+          (fixes #348179)
 
 2006-07-21  Wim Taymans  <wim@fluendo.com>
 
index 0c27d10c837cf502cbe46a75be3158fd0773d378..705e6806dd131f4e8270863bd11b316c0d433a57 100644 (file)
 #include "gstparse.h"
 #include "gstinfo.h"
 
+#ifndef HAVE_MT_SAVE_FLEX
 /* the need for the mutex will go away with flex 2.5.6 */
 static gboolean flex_busy = FALSE;
-
-#ifndef HAVE_MT_SAVE_FLEX
 static GStaticRecMutex flex_lock = G_STATIC_REC_MUTEX_INIT;
 #endif
 
@@ -152,28 +151,28 @@ gst_parse_launch (const gchar * pipeline_description, GError ** error)
 
 #ifndef HAVE_MT_SAVE_FLEX
   g_static_rec_mutex_lock (&flex_lock);
-#endif
   if (flex_busy)
     goto recursive_call;
   flex_busy = TRUE;
+#endif
 
   element = _gst_parse_launch (pipeline_description, error);
 
-  flex_busy = FALSE;
 #ifndef HAVE_MT_SAVE_FLEX
+  flex_busy = FALSE;
   g_static_rec_mutex_unlock (&flex_lock);
 #endif
 
   return element;
 
   /* ERRORS */
+#ifndef HAVE_MT_SAVE_FLEX
 recursive_call:
   {
     GST_WARNING ("calls to gst_parse_launch() cannot be nested");
-#ifndef HAVE_MT_SAVE_FLEX
     g_static_rec_mutex_unlock (&flex_lock);
-#endif
     g_warning ("calls to gst_parse_launch() cannot be nested");
     return NULL;
   }
+#endif
 }