2007-12-01 Matthias Clasen <mclasen@redhat.com>
+ * gioenumtypes.c.template: Make threadsafe get_type() functions.
+
+2007-12-01 Matthias Clasen <mclasen@redhat.com>
+
* gdirectorymonitor.c:
* gfilemonitor.c: Add properties
$(marshal_sources) \
$(NULL)
-gioenumtypes.h: $(gio_headers)
+gioenumtypes.h: $(gio_headers) gioenumtypes.h.template
( cd $(srcdir) && $(top_builddir)/gobject/glib-mkenums --template gioenumtypes.h.template $(gio_headers) ) > gioenumtypes.h
-gioenumtypes.c: $(gio_headers)
+gioenumtypes.c: $(gio_headers) gioenumtypes.c.template
( cd $(srcdir) && $(top_builddir)/gobject/glib-mkenums --template gioenumtypes.c.template $(gio_headers) ) > gioenumtypes.c
GType
@enum_name@_get_type (void)
{
- static GType etype = 0;
+ static volatile gsize g_define_type_id__volatile = 0;
- if (G_UNLIKELY(etype == 0)) {
- static const G@Type@Value values[] = {
+ if (g_once_init_enter (&g_define_type_id__volatile))
+ {
+ static const G@Type@Value values[] = {
/*** END value-header ***/
/*** BEGIN value-production ***/
- { @VALUENAME@, "@VALUENAME@", "@valuenick@" },
+ { @VALUENAME@, "@VALUENAME@", "@valuenick@" },
/*** END value-production ***/
/*** BEGIN value-tail ***/
- { 0, NULL, NULL }
- };
- etype = g_@type@_register_static (g_intern_static_string ("@EnumName@"), values);
+ { 0, NULL, NULL }
+ };
+ GType g_define_type_id =
+ = g_@type@_register_static (g_intern_static_string ("@EnumName@"), values);
+ g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
}
- return etype;
+
+ return g_define_type_id__volatile;
}
/*** END value-tail ***/