mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-02-10 12:55:48 +01:00
Make threadsafe get_type() functions.
2007-12-01 Matthias Clasen <mclasen@redhat.com> * gioenumtypes.c.template: Make threadsafe get_type() functions. svn path=/trunk/; revision=6011
This commit is contained in:
parent
d99ce06736
commit
264aa4cd8a
@ -1,3 +1,7 @@
|
|||||||
|
2007-12-01 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
|
* gioenumtypes.c.template: Make threadsafe get_type() functions.
|
||||||
|
|
||||||
2007-12-01 Matthias Clasen <mclasen@redhat.com>
|
2007-12-01 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
* gdirectorymonitor.c:
|
* gdirectorymonitor.c:
|
||||||
|
@ -258,9 +258,9 @@ CLEANFILES = \
|
|||||||
$(marshal_sources) \
|
$(marshal_sources) \
|
||||||
$(NULL)
|
$(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
|
( 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
|
( cd $(srcdir) && $(top_builddir)/gobject/glib-mkenums --template gioenumtypes.c.template $(gio_headers) ) > gioenumtypes.c
|
||||||
|
|
||||||
|
@ -12,22 +12,26 @@
|
|||||||
GType
|
GType
|
||||||
@enum_name@_get_type (void)
|
@enum_name@_get_type (void)
|
||||||
{
|
{
|
||||||
static GType etype = 0;
|
static volatile gsize g_define_type_id__volatile = 0;
|
||||||
|
|
||||||
if (G_UNLIKELY(etype == 0)) {
|
if (g_once_init_enter (&g_define_type_id__volatile))
|
||||||
static const G@Type@Value values[] = {
|
{
|
||||||
|
static const G@Type@Value values[] = {
|
||||||
/*** END value-header ***/
|
/*** END value-header ***/
|
||||||
|
|
||||||
/*** BEGIN value-production ***/
|
/*** BEGIN value-production ***/
|
||||||
{ @VALUENAME@, "@VALUENAME@", "@valuenick@" },
|
{ @VALUENAME@, "@VALUENAME@", "@valuenick@" },
|
||||||
/*** END value-production ***/
|
/*** END value-production ***/
|
||||||
|
|
||||||
/*** BEGIN value-tail ***/
|
/*** BEGIN value-tail ***/
|
||||||
{ 0, NULL, NULL }
|
{ 0, NULL, NULL }
|
||||||
};
|
};
|
||||||
etype = g_@type@_register_static (g_intern_static_string ("@EnumName@"), values);
|
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 ***/
|
/*** END value-tail ***/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user