[gst-devel] Possible race-condition when using g_enum_register_static
thaytan at mad.scientist.com
Thu Oct 18 12:18:47 CEST 2007
<quote who="Michal Benes">
> Isn't this racy when two mad plugins in two separate threads call this
> function for the first time? They clearly share the mad_emphasis_type
> The problem is that the code like this is quite common in GStreamer.
> Am I wrong or is this a real problem?
Yes, it's an actual problem with the usual idiom for registering GLib types.
Until it is fixed in GLib, we work around it by trying to ensure types get
registered from known single-threaded locations. In this case, a call to the
get_type method in the plugin init or class initialisation for the mad
element should do it.
More information about the gstreamer-devel