From: Tim-Philipp Müller Date: Fri, 8 Oct 2010 08:34:47 +0000 (+0100) Subject: gdp: make public enum _get_type() functions thread-safe X-Git-Tag: 1.19.3~511^2~7020^2~8 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a24e138493c7032386e80f8318d65987d67b00da;p=platform%2Fupstream%2Fgstreamer.git gdp: make public enum _get_type() functions thread-safe Not that it is likely to matter in practice, but since these are public API they should probably be thread-safe. --- diff --git a/gst/gdp/dataprotocol.c b/gst/gdp/dataprotocol.c index 5e413b0..b57d377 100644 --- a/gst/gdp/dataprotocol.c +++ b/gst/gdp/dataprotocol.c @@ -292,18 +292,19 @@ gst_dp_dump_byte_array (guint8 * array, guint length) GType gst_dp_version_get_type (void) { - static GType gst_dp_version_type = 0; + static gsize gst_dp_version_type = 0; static const GEnumValue gst_dp_version[] = { {GST_DP_VERSION_0_2, "GST_DP_VERSION_0_2", "0.2"}, {GST_DP_VERSION_1_0, "GST_DP_VERSION_1_0", "1.0"}, {0, NULL, NULL}, }; - if (!gst_dp_version_type) { - gst_dp_version_type = - g_enum_register_static ("GstDPVersion", gst_dp_version); + if (g_once_init_enter (&gst_dp_version_type)) { + GType tmp = g_enum_register_static ("GstDPVersion", gst_dp_version); + g_once_init_leave (&gst_dp_version_type, tmp); } - return gst_dp_version_type; + + return (GType) gst_dp_version_type; }; /**