macro wrappers for g_once_init_enter/leave
authorRyan Lortie <desrt@desrt.ca>
Mon, 3 Oct 2011 18:40:00 +0000 (14:40 -0400)
committerRyan Lortie <desrt@desrt.ca>
Tue, 4 Oct 2011 15:00:31 +0000 (11:00 -0400)
commit794c1a30bc27b4c8d77537813acb1213d5ac80f2
treec9002ea4087f677fbfb746797f8dce844c2734a1
parent8f58c2c0c43fadc19463aec214b27bc41c6a1651
macro wrappers for g_once_init_enter/leave

Give the macro wrapper treatment to g_once_init_enter() and leave() in
the same style that we did for gatomic.

It is now possible to use these macros with any pointer-sized object,
and not just gsize.  The leave() macro ensures that the initialisation
result is a compatible type with the pointer that it is being written
to.

Just like with gatomic, there could be problems caused by use of (void*)
casts.  We'll see how that goes, and reevaluate if necessary.

https://bugzilla.gnome.org/show_bug.cgi?id=660743
glib/deprecated/gthread-deprecated.c
glib/deprecated/gthread.h
glib/gthread.c
glib/gthread.h
glib/tests/once.c