summaryrefslogtreecommitdiff
path: root/gst
diff options
context:
space:
mode:
authorOlivier CrĂȘte <olivier.crete@collabora.co.uk>2009-02-12 14:42:31 +0000
committerOlivier CrĂȘte <olivier.crete@collabora.co.uk>2009-02-12 15:21:42 +0000
commite4b7e06a20cb53c8b85f1a5d40d3883e5776580f (patch)
tree7b5a3b35e38ca909da97a35fac36295a3202e384 /gst
parent455f27349fb0218af17f1a9060a8683c7b1f8d74 (diff)
downloadlibnice-e4b7e06a20cb53c8b85f1a5d40d3883e5776580f.tar.gz
Lock src when modifying idle_source
Diffstat (limited to 'gst')
-rw-r--r--gst/gstnicesrc.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/gst/gstnicesrc.c b/gst/gstnicesrc.c
index e83eade..37aabbf 100644
--- a/gst/gstnicesrc.c
+++ b/gst/gstnicesrc.c
@@ -213,10 +213,15 @@ gst_nice_src_unlock_idler (gpointer data)
{
GstNiceSrc *nicesrc = GST_NICE_SRC (data);
- g_main_loop_quit (nicesrc->mainloop);
+ GST_OBJECT_LOCK (nicesrc);
+ if (nicesrc->unlocked)
+ g_main_loop_quit (nicesrc->mainloop);
- g_source_unref (nicesrc->idle_source);
- nicesrc->idle_source = NULL;
+ if (nicesrc->idle_source) {
+ g_source_unref (nicesrc->idle_source);
+ nicesrc->idle_source = NULL;
+ }
+ GST_OBJECT_UNLOCK (nicesrc);
return FALSE;
}