Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: downloads/boost_1_34_1/doc/html/boost/call_once.html @ 29

Last change on this file since 29 was 29, checked in by landauf, 17 years ago

updated boost from 1_33_1 to 1_34_1

File size: 4.0 KB
Line 
1<html>
2<head>
3<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
4<title>Function call_once</title>
5<link rel="stylesheet" href="../boostbook.css" type="text/css">
6<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
7<link rel="start" href="../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset">
8<link rel="up" href="../thread/reference.html#header.boost.thread.once.hpp" title="Header &lt;boost/thread/once.hpp&gt;">
9<link rel="prev" href="../BOOST_ONCE_INIT.html" title="Macro BOOST_ONCE_INIT">
10<link rel="next" href="recursive_mutex.html" title="Class recursive_mutex">
11</head>
12<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
13<table cellpadding="2" width="100%">
14<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
15<td align="center"><a href="../../../index.htm">Home</a></td>
16<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
17<td align="center"><a href="../../../people/people.htm">People</a></td>
18<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
19<td align="center"><a href="../../../more/index.htm">More</a></td>
20</table>
21<hr>
22<div class="spirit-nav">
23<a accesskey="p" href="../BOOST_ONCE_INIT.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../thread/reference.html#header.boost.thread.once.hpp"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="recursive_mutex.html"><img src="../images/next.png" alt="Next"></a>
24</div>
25<div class="refentry" lang="en">
26<a name="boost.call_once"></a><div class="titlepage"></div>
27<div class="refnamediv">
28<h2><span class="refentrytitle">Function call_once</span></h2>
29<p>boost::call_once &#8212; The <a href="call_once.html" title="Function call_once">call_once</a> function and
30                        <code class="computeroutput">once_flag</code> type (statically initialized to
31                        <a href="../BOOST_ONCE_INIT.html" title="Macro BOOST_ONCE_INIT">BOOST_ONCE_INIT</a>) can be used to run a
32                        routine exactly once. This can be used to initialize data in a
33                        <a href="../thread.html#thread.glossary.thread-safe">thread-safe</a>
34                        manner.</p>
35</div>
36<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
37<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis">
38 call_once(<span class="bold"><strong>void</strong></span> (*func)() func, once_flag&amp; flag);</pre></div>
39<div class="refsect1" lang="en">
40<a name="id1740068"></a><h2>Description</h2>
41<p>Example usage is as follows:</p>
42<p>
43</p>
44<pre class="programlisting">//Example usage:
45boost::once_flag once = BOOST_ONCE_INIT;
46
47void init()
48{
49    //...
50}
51
52void thread_proc()
53{
54    boost::call_once(&amp;init, once);
55}</pre>
56<p>
57                        </p>
58<div class="variablelist"><table border="0">
59<col align="left" valign="top">
60<tbody>
61<tr>
62<td>
63<span class="term">Requires:</span></td>
64<td>The function <code class="computeroutput">func</code> shall not throw
65                        exceptions.</td>
66</tr>
67<tr>
68<td>
69<span class="term">Effects:</span></td>
70<td>As if (in an atomic fashion):
71                        <code class="computeroutput">if (flag == BOOST_ONCE_INIT) func();</code>
72</td>
73</tr>
74<tr>
75<td>
76<span class="term">Postconditions:</span></td>
77<td><code class="computeroutput">flag != BOOST_ONCE_INIT</code></td>
78</tr>
79</tbody>
80</table></div>
81</div>
82</div>
83<table width="100%"><tr>
84<td align="left"></td>
85<td align="right"><small>Copyright © 2001-2003 William E. Kempf</small></td>
86</tr></table>
87<hr>
88<div class="spirit-nav">
89<a accesskey="p" href="../BOOST_ONCE_INIT.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../thread/reference.html#header.boost.thread.once.hpp"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="recursive_mutex.html"><img src="../images/next.png" alt="Next"></a>
90</div>
91</body>
92</html>
Note: See TracBrowser for help on using the repository browser.