mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-17 11:45:25 +00:00
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:
parent
ee40730558
commit
3cea60dc6f
1 changed files with 4 additions and 2 deletions
|
@ -442,6 +442,8 @@ gst_task_new (GstTaskFunction func, gpointer user_data, GDestroyNotify notify)
|
||||||
void
|
void
|
||||||
gst_task_set_lock (GstTask * task, GRecMutex * mutex)
|
gst_task_set_lock (GstTask * task, GRecMutex * mutex)
|
||||||
{
|
{
|
||||||
|
g_return_if_fail (GST_IS_TASK (task));
|
||||||
|
|
||||||
GST_OBJECT_LOCK (task);
|
GST_OBJECT_LOCK (task);
|
||||||
if (G_UNLIKELY (task->running))
|
if (G_UNLIKELY (task->running))
|
||||||
goto is_running;
|
goto is_running;
|
||||||
|
@ -797,10 +799,10 @@ gst_task_join (GstTask * task)
|
||||||
gpointer id;
|
gpointer id;
|
||||||
GstTaskPool *pool = NULL;
|
GstTaskPool *pool = NULL;
|
||||||
|
|
||||||
priv = task->priv;
|
|
||||||
|
|
||||||
g_return_val_if_fail (GST_IS_TASK (task), FALSE);
|
g_return_val_if_fail (GST_IS_TASK (task), FALSE);
|
||||||
|
|
||||||
|
priv = task->priv;
|
||||||
|
|
||||||
tself = g_thread_self ();
|
tself = g_thread_self ();
|
||||||
|
|
||||||
GST_DEBUG_OBJECT (task, "Joining task %p, thread %p", task, tself);
|
GST_DEBUG_OBJECT (task, "Joining task %p, thread %p", task, tself);
|
||||||
|
|
Loading…
Reference in a new issue