From: Tim-Philipp Müller Date: Tue, 17 Feb 2015 20:47:23 +0000 (+0000) Subject: message: revive async delivery message before bus thread can run unref X-Git-Tag: 1.6.1~547 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=10f038d4fbe50cb5348107a51806dda3412c1ace;p=platform%2Fupstream%2Fgstreamer.git message: revive async delivery message before bus thread can run unref Revive message in dispose handler before we signal the bus thread, otherwise the bus thread might be woken up and unref the message before we had a chance to revive it yet. --- diff --git a/gst/gstmessage.c b/gst/gstmessage.c index 9f4d286..51282b9 100644 --- a/gst/gstmessage.c +++ b/gst/gstmessage.c @@ -172,6 +172,9 @@ _gst_message_dispose (GstMessage * message) gboolean do_free = TRUE; if (GST_MINI_OBJECT_FLAG_IS_SET (message, GST_MESSAGE_FLAG_ASYNC_DELIVERY)) { + /* revive message, so bus can finish with it and clean it up */ + gst_message_ref (message); + GST_INFO ("[msg %p] signalling async free", message); GST_MESSAGE_LOCK (message); @@ -179,7 +182,6 @@ _gst_message_dispose (GstMessage * message) GST_MESSAGE_UNLOCK (message); /* don't free it yet, let bus finish with it first */ - gst_message_ref (message); do_free = FALSE; }