aboutsummaryrefslogtreecommitdiffstats
path: root/enumtypes.c.template
diff options
context:
space:
mode:
authorMilan Crha <mcrha@redhat.com>2013-04-12 15:50:06 +0800
committerMilan Crha <mcrha@redhat.com>2013-04-12 15:50:06 +0800
commit1c5f6313c58187ce7682058057b63e14ae6f70e5 (patch)
treeb32502d72fe77f9e42e47b89df5e9034b92b9546 /enumtypes.c.template
parent765a50d3df2d53b73b149fc2646f46722add7635 (diff)
downloadgsoc2013-evolution-1c5f6313c58187ce7682058057b63e14ae6f70e5.tar
gsoc2013-evolution-1c5f6313c58187ce7682058057b63e14ae6f70e5.tar.gz
gsoc2013-evolution-1c5f6313c58187ce7682058057b63e14ae6f70e5.tar.bz2
gsoc2013-evolution-1c5f6313c58187ce7682058057b63e14ae6f70e5.tar.lz
gsoc2013-evolution-1c5f6313c58187ce7682058057b63e14ae6f70e5.tar.xz
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.template37
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 ***/