mirror of
https://github.com/brl/mutter.git
synced 2024-11-26 18:11:05 -05:00
99b2f14d60
Just like we do with GObject types and G_DEFINE_TYPE, we should use the g_once_init_enter/g_once_init_leave mechanism to make the GType registration of enumeration types thread safe.
42 lines
933 B
C
42 lines
933 B
C
/*** BEGIN file-header ***/
|
|
#include "cogl-enum-types.h"
|
|
#include "cogl.h"
|
|
/*** END file-header ***/
|
|
|
|
/*** BEGIN file-production ***/
|
|
|
|
/* enumerations from "@filename@" */
|
|
#include "@filename@"
|
|
|
|
/*** END file-production ***/
|
|
|
|
/*** BEGIN value-header ***/
|
|
GType
|
|
@enum_name@_get_type (void)
|
|
{
|
|
static volatile gsize g_enum_type_id__volatile = 0;
|
|
|
|
if (g_once_init_enter (&g_enum_type_id__volatile))
|
|
{
|
|
static const G@Type@Value values[] = {
|
|
/*** END value-header ***/
|
|
|
|
/*** BEGIN value-production ***/
|
|
{ @VALUENAME@, "@VALUENAME@", "@valuenick@" },
|
|
/*** END value-production ***/
|
|
|
|
/*** BEGIN value-tail ***/
|
|
{ 0, NULL, NULL }
|
|
};
|
|
GType g_enum_type_id;
|
|
|
|
g_enum_type_id =
|
|
g_@type@_register_static (g_intern_static_string ("@EnumName@"), values);
|
|
|
|
g_once_init_leave (&g_enum_type_id__volatile, g_enum_type_id);
|
|
}
|
|
|
|
return g_enum_type_id__volatile;
|
|
}
|
|
/*** END value-tail ***/
|