task: add function guard for _set_lock() and fix guard for _join()

Should only access the object structure after checking
it's valid in gst_task_join().

https://bugzilla.gnome.org/show_bug.cgi?id=746385
https://bugzilla.gnome.org/show_bug.cgi?id=746431
This commit is contained in:
Prashant Gotarne 2015-03-18 16:05:34 +05:30 committed by Tim-Philipp Müller
parent ee40730558
commit 3cea60dc6f

View file

@ -442,6 +442,8 @@ gst_task_new (GstTaskFunction func, gpointer user_data, GDestroyNotify notify)
void
gst_task_set_lock (GstTask * task, GRecMutex * mutex)
{
g_return_if_fail (GST_IS_TASK (task));
GST_OBJECT_LOCK (task);
if (G_UNLIKELY (task->running))
goto is_running;
@ -797,10 +799,10 @@ gst_task_join (GstTask * task)
gpointer id;
GstTaskPool *pool = NULL;
priv = task->priv;
g_return_val_if_fail (GST_IS_TASK (task), FALSE);
priv = task->priv;
tself = g_thread_self ();
GST_DEBUG_OBJECT (task, "Joining task %p, thread %p", task, tself);