diff options
author | Milan Crha <mcrha@redhat.com> | 2013-04-12 15:50:06 +0800 |
---|---|---|
committer | Milan Crha <mcrha@redhat.com> | 2013-04-12 15:50:06 +0800 |
commit | 1c5f6313c58187ce7682058057b63e14ae6f70e5 (patch) | |
tree | b32502d72fe77f9e42e47b89df5e9034b92b9546 /enumtypes.c.template | |
parent | 765a50d3df2d53b73b149fc2646f46722add7635 (diff) | |
download | gsoc2013-evolution-1c5f6313c58187ce7682058057b63e14ae6f70e5.tar.gz gsoc2013-evolution-1c5f6313c58187ce7682058057b63e14ae6f70e5.tar.zst gsoc2013-evolution-1c5f6313c58187ce7682058057b63e14ae6f70e5.zip |
Bug #681837 - Make enum type registration thread safe
Diffstat (limited to 'enumtypes.c.template')
-rw-r--r-- | enumtypes.c.template | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/enumtypes.c.template b/enumtypes.c.template new file mode 100644 index 0000000000..0a9912166c --- /dev/null +++ b/enumtypes.c.template @@ -0,0 +1,37 @@ +/*** BEGIN file-header ***/ +/*** 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 the_type__volatile = 0; + + if (g_once_init_enter (&the_type__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 the_type = g_@type@_register_static ( + g_intern_static_string ("@EnumName@"), + values); + g_once_init_leave (&the_type__volatile, the_type); + } + return the_type__volatile; +} + +/*** END value-tail ***/ |