mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-21 21:46:22 +00:00
element: inline the recursice state lock
This commit is contained in:
parent
b5d35162ae
commit
9555a7f8d0
2 changed files with 5 additions and 12 deletions
|
@ -285,8 +285,7 @@ gst_element_init (GstElement * element)
|
||||||
GST_STATE_RETURN (element) = GST_STATE_CHANGE_SUCCESS;
|
GST_STATE_RETURN (element) = GST_STATE_CHANGE_SUCCESS;
|
||||||
|
|
||||||
/* FIXME 0.11: Store this directly in the instance struct */
|
/* FIXME 0.11: Store this directly in the instance struct */
|
||||||
element->state_lock = g_slice_new (GStaticRecMutex);
|
g_static_rec_mutex_init (&element->state_lock);
|
||||||
g_static_rec_mutex_init (element->state_lock);
|
|
||||||
element->state_cond = g_cond_new ();
|
element->state_cond = g_cond_new ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2915,14 +2914,8 @@ gst_element_finalize (GObject * object)
|
||||||
|
|
||||||
GST_CAT_INFO_OBJECT (GST_CAT_REFCOUNTING, element, "finalize");
|
GST_CAT_INFO_OBJECT (GST_CAT_REFCOUNTING, element, "finalize");
|
||||||
|
|
||||||
GST_STATE_LOCK (element);
|
g_cond_free (element->state_cond);
|
||||||
if (element->state_cond)
|
g_static_rec_mutex_free (&element->state_lock);
|
||||||
g_cond_free (element->state_cond);
|
|
||||||
element->state_cond = NULL;
|
|
||||||
GST_STATE_UNLOCK (element);
|
|
||||||
g_static_rec_mutex_free (element->state_lock);
|
|
||||||
g_slice_free (GStaticRecMutex, element->state_lock);
|
|
||||||
element->state_lock = NULL;
|
|
||||||
|
|
||||||
GST_CAT_INFO_OBJECT (GST_CAT_REFCOUNTING, element, "finalize parent");
|
GST_CAT_INFO_OBJECT (GST_CAT_REFCOUNTING, element, "finalize parent");
|
||||||
|
|
||||||
|
|
|
@ -487,7 +487,7 @@ G_STMT_START { \
|
||||||
* This lock is used by the core. It is taken while getting or setting
|
* This lock is used by the core. It is taken while getting or setting
|
||||||
* the state, during state changes, and while finalizing.
|
* the state, during state changes, and while finalizing.
|
||||||
*/
|
*/
|
||||||
#define GST_STATE_GET_LOCK(elem) (GST_ELEMENT_CAST(elem)->state_lock)
|
#define GST_STATE_GET_LOCK(elem) (&(GST_ELEMENT_CAST(elem)->state_lock))
|
||||||
/**
|
/**
|
||||||
* GST_STATE_GET_COND:
|
* GST_STATE_GET_COND:
|
||||||
* @elem: a #GstElement
|
* @elem: a #GstElement
|
||||||
|
@ -544,7 +544,7 @@ struct _GstElement
|
||||||
GstObject object;
|
GstObject object;
|
||||||
|
|
||||||
/*< public >*/ /* with LOCK */
|
/*< public >*/ /* with LOCK */
|
||||||
GStaticRecMutex *state_lock;
|
GStaticRecMutex state_lock;
|
||||||
|
|
||||||
/* element state */
|
/* element state */
|
||||||
GCond *state_cond;
|
GCond *state_cond;
|
||||||
|
|
Loading…
Reference in a new issue