mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-23 00:36:51 +00:00
gst/gstobject.h (GST_CLASS_LOCK, GST_CLASS_TRYLOCK) (GST_CLASS_UNLOCK, GST_CLASS_GET_LOCK, GstObjectClass)
Original commit message from CVS: 2005-06-23 Andy Wingo <wingo@pobox.com> * gst/gstobject.h (GST_CLASS_LOCK, GST_CLASS_TRYLOCK) (GST_CLASS_UNLOCK, GST_CLASS_GET_LOCK, GstObjectClass) * gst/gstobject.c (gst_object_class_init): Make the class lock recursive. Wim won't let me drop deep_notify. Decodebin works again, whoopdy doo.
This commit is contained in:
parent
57bfdb30e4
commit
cc2d216e88
3 changed files with 12 additions and 5 deletions
|
@ -1,5 +1,11 @@
|
|||
2005-06-23 Andy Wingo <wingo@pobox.com>
|
||||
|
||||
* gst/gstobject.h (GST_CLASS_LOCK, GST_CLASS_TRYLOCK)
|
||||
(GST_CLASS_UNLOCK, GST_CLASS_GET_LOCK, GstObjectClass)
|
||||
* gst/gstobject.c (gst_object_class_init): Make the class lock
|
||||
recursive. Wim won't let me drop deep_notify. Decodebin works
|
||||
again, whoopdy doo.
|
||||
|
||||
* gst/gstghostpad.c (on_int_notify): Catches notify::caps on the
|
||||
internal pad, and hacks accordingly. Doesn't do it on the target
|
||||
pad because we change its caps. Probably catches all cases of
|
||||
|
|
|
@ -187,7 +187,8 @@ gst_object_class_init (GstObjectClass * klass)
|
|||
G_TYPE_PARAM);
|
||||
|
||||
klass->path_string_separator = "/";
|
||||
klass->lock = g_mutex_new ();
|
||||
klass->lock = g_new0 (GStaticRecMutex, 1);
|
||||
g_static_rec_mutex_init (klass->lock);
|
||||
|
||||
klass->signal_object = g_object_new (gst_signal_object_get_type (), NULL);
|
||||
|
||||
|
|
|
@ -98,9 +98,9 @@ struct _GstObject {
|
|||
gpointer _gst_reserved[GST_PADDING];
|
||||
};
|
||||
|
||||
#define GST_CLASS_LOCK(obj) (g_mutex_lock(GST_OBJECT_CLASS_CAST(obj)->lock))
|
||||
#define GST_CLASS_TRYLOCK(obj) (g_mutex_trylock(GST_OBJECT_CLASS_CAST(obj)->lock))
|
||||
#define GST_CLASS_UNLOCK(obj) (g_mutex_unlock(GST_OBJECT_CLASS_CAST(obj)->lock))
|
||||
#define GST_CLASS_LOCK(obj) (g_static_rec_mutex_lock(GST_OBJECT_CLASS_CAST(obj)->lock))
|
||||
#define GST_CLASS_TRYLOCK(obj) (g_static_rec_mutex_trylock(GST_OBJECT_CLASS_CAST(obj)->lock))
|
||||
#define GST_CLASS_UNLOCK(obj) (g_static_rec_mutex_unlock(GST_OBJECT_CLASS_CAST(obj)->lock))
|
||||
#define GST_CLASS_GET_LOCK(obj) (GST_OBJECT_CLASS_CAST(obj)->lock)
|
||||
|
||||
/* signal_object is used to signal to the whole class */
|
||||
|
@ -110,7 +110,7 @@ struct _GstObjectClass {
|
|||
gchar *path_string_separator;
|
||||
GObject *signal_object;
|
||||
|
||||
GMutex *lock;
|
||||
GStaticRecMutex *lock;
|
||||
|
||||
/* signals */
|
||||
void (*parent_set) (GstObject *object, GstObject *parent);
|
||||
|
|
Loading…
Reference in a new issue