mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-11-10 03:16:17 +01:00
document g_once_init_enter and g_once_init_leave.
Tue Jul 10 12:31:04 2007 Tim Janik <timj@imendio.com> * glib/tmpl/threads.sgml: document g_once_init_enter and g_once_init_leave. svn path=/trunk/; revision=5617
This commit is contained in:
parent
c9ccc828f1
commit
1132766280
@ -1,3 +1,7 @@
|
|||||||
|
Tue Jul 10 12:31:04 2007 Tim Janik <timj@imendio.com>
|
||||||
|
|
||||||
|
* glib/tmpl/threads.sgml: document g_once_init_enter and g_once_init_leave.
|
||||||
|
|
||||||
2007-07-09 Matthias Clasen <mclasen@redhat.com>
|
2007-07-09 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
* tmpl/modules.sgml: Remove duplicate paragraph.
|
* tmpl/modules.sgml: Remove duplicate paragraph.
|
||||||
|
@ -1720,3 +1720,42 @@ get_debug_flags ()
|
|||||||
@Since: 2.4
|
@Since: 2.4
|
||||||
|
|
||||||
|
|
||||||
|
<!-- ##### FUNCTION g_once_init_enter ##### -->
|
||||||
|
<para>
|
||||||
|
Function to be called when starting a critical initialization section.
|
||||||
|
The argument value_location must point to a static 0-initialized variable
|
||||||
|
that will be set to a value other than 0 at the end of the initialization section.
|
||||||
|
In combination with g_once_init_leave() and the unique address value_location,
|
||||||
|
it can be ensured that an initialization section will be executed only once
|
||||||
|
during a programs life time, and that concurrent threads are blocked until
|
||||||
|
initialization completed. To be used in constructs like this:
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
<informalexample>
|
||||||
|
<programlisting>
|
||||||
|
static gsize initialization_value = 0;
|
||||||
|
if (g_once_init_enter (&initialization_value)) // section start
|
||||||
|
{
|
||||||
|
gsize setup_value = 42; // initialization code here
|
||||||
|
g_once_init_leave (&initialization_value, setup_value); // section end
|
||||||
|
}
|
||||||
|
</programlisting>
|
||||||
|
</informalexample>
|
||||||
|
</para>
|
||||||
|
|
||||||
|
@value_location: location of a static initializable variable containing 0.
|
||||||
|
@Returns: %TRUE if the initialization section should be netered, %FALSE and blocks otheriwse
|
||||||
|
@Since: 2.14
|
||||||
|
|
||||||
|
<!-- ##### FUNCTION g_once_init_leave ##### -->
|
||||||
|
<para>
|
||||||
|
Counterpart to g_once_init_enter(). Expects a location of a static 0-initialized
|
||||||
|
initialization variable, and an initialization value other than 0. Sets the variable
|
||||||
|
to the initialization value, and releases concurrent threads blocking in
|
||||||
|
g_once_init_enter() on this initialization variable.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
@value_location: location of a static initializable variable containing 0.
|
||||||
|
@initialization_value: new non-0 value for *@value_location:
|
||||||
|
@Since: 2.14
|
||||||
|
Loading…
Reference in New Issue
Block a user