release lock before doing signal handling
authorBenjamin Otte <otte@gnome.org>
Thu, 17 Apr 2003 19:51:28 +0000 (19:51 +0000)
committerBenjamin Otte <otte@gnome.org>
Thu, 17 Apr 2003 19:51:28 +0000 (19:51 +0000)
Original commit message from CVS:
release lock before doing signal handling

gst/gstqueue.c
plugins/elements/gstqueue.c

index 683a996..b41ef3f 100644 (file)
@@ -352,7 +352,9 @@ restart:
   GST_DEBUG_ELEMENT (GST_CAT_DATAFLOW, queue, "adding buffer %p of size %d",buf,GST_BUFFER_SIZE(buf));
 
   if (queue->level_buffers == queue->size_buffers) {
+    g_mutex_unlock (queue->qlock);
     g_signal_emit (G_OBJECT (queue), gst_queue_signals[FULL], 0);
+    g_mutex_lock (queue->qlock);
 
     /* if this is a leaky queue... */
     if (queue->leaky) {
index 683a996..b41ef3f 100644 (file)
@@ -352,7 +352,9 @@ restart:
   GST_DEBUG_ELEMENT (GST_CAT_DATAFLOW, queue, "adding buffer %p of size %d",buf,GST_BUFFER_SIZE(buf));
 
   if (queue->level_buffers == queue->size_buffers) {
+    g_mutex_unlock (queue->qlock);
     g_signal_emit (G_OBJECT (queue), gst_queue_signals[FULL], 0);
+    g_mutex_lock (queue->qlock);
 
     /* if this is a leaky queue... */
     if (queue->leaky) {