📄 glib-atomic-operations.html
字号:
</p></div><hr><div class="refsect2" lang="en"><a name="id2844151"></a><h3><a name="g-atomic-int-compare-and-exchange"></a>g_atomic_int_compare_and_exchange ()</h3><a class="indexterm" name="id2844163"></a><pre class="programlisting"><a href="glib-Basic-Types.html#gboolean">gboolean</a> g_atomic_int_compare_and_exchange (<a href="glib-Basic-Types.html#gint">gint</a> *atomic, <a href="glib-Basic-Types.html#gint">gint</a> oldval, <a href="glib-Basic-Types.html#gint">gint</a> newval);</pre><p>Compares <em class="parameter"><code>oldval</code></em> with the integer pointed to by <em class="parameter"><code>atomic</code></em> andif they are equal, atomically exchanges *<em class="parameter"><code>atomic</code></em> with <em class="parameter"><code>newval</code></em>.Also acts as a memory barrier.</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><em class="parameter"><code>atomic</code></em> :</span></td><td>a pointer to an integer.</td></tr><tr><td><span class="term"><em class="parameter"><code>oldval</code></em> :</span></td><td>the assumed old value of *<em class="parameter"><code>atomic</code></em>.</td></tr><tr><td><span class="term"><em class="parameter"><code>newval</code></em> :</span></td><td>the new value of *<em class="parameter"><code>atomic</code></em>.</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td><code class="literal">TRUE</code>, if *<em class="parameter"><code>atomic</code></em> was equal <em class="parameter"><code>oldval</code></em>. <code class="literal">FALSE</code> otherwise.</td></tr></tbody></table></div><p>Since 2.4</p></div><hr><div class="refsect2" lang="en"><a name="id2844328"></a><h3><a name="g-atomic-pointer-get"></a>g_atomic_pointer_get ()</h3><a class="indexterm" name="id2844339"></a><pre class="programlisting"><a href="glib-Basic-Types.html#gpointer">gpointer</a> g_atomic_pointer_get (<a href="glib-Basic-Types.html#gpointer">gpointer</a> *atomic);</pre><p>Reads the value of the pointer pointed to by <em class="parameter"><code>atomic</code></em>. Also acts asa memory barrier.</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><em class="parameter"><code>atomic</code></em> :</span></td><td>a pointer to a <a href="glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>.</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the value to add to *<em class="parameter"><code>atomic</code></em>.</td></tr></tbody></table></div><p>Since 2.4</p></div><hr><div class="refsect2" lang="en"><a name="id2844421"></a><h3><a name="g-atomic-pointer-compare-and-exchange"></a>g_atomic_pointer_compare_and_exchange ()</h3><a class="indexterm" name="id2844433"></a><pre class="programlisting"><a href="glib-Basic-Types.html#gboolean">gboolean</a> g_atomic_pointer_compare_and_exchange (<a href="glib-Basic-Types.html#gpointer">gpointer</a> *atomic, <a href="glib-Basic-Types.html#gpointer">gpointer</a> oldval, <a href="glib-Basic-Types.html#gpointer">gpointer</a> newval);</pre><p>Compares <em class="parameter"><code>oldval</code></em> with the pointer pointed to by <em class="parameter"><code>atomic</code></em> andif they are equal, atomically exchanges *<em class="parameter"><code>atomic</code></em> with <em class="parameter"><code>newval</code></em>. Also acts as a memory barrier.</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><em class="parameter"><code>atomic</code></em> :</span></td><td>a pointer to a <a href="glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>.</td></tr><tr><td><span class="term"><em class="parameter"><code>oldval</code></em> :</span></td><td>the assumed old value of *<em class="parameter"><code>atomic</code></em>.</td></tr><tr><td><span class="term"><em class="parameter"><code>newval</code></em> :</span></td><td>the new value of *<em class="parameter"><code>atomic</code></em>.</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td><code class="literal">TRUE</code>, if *<em class="parameter"><code>atomic</code></em> was equal <em class="parameter"><code>oldval</code></em>. <code class="literal">FALSE</code> otherwise.</td></tr></tbody></table></div><p>Since 2.4</p></div><hr><div class="refsect2" lang="en"><a name="id2844606"></a><h3><a name="g-atomic-int-inc"></a>g_atomic_int_inc ()</h3><a class="indexterm" name="id2844617"></a><pre class="programlisting">void g_atomic_int_inc (<a href="glib-Basic-Types.html#gint">gint</a> *atomic);</pre><p>Atomically increments the integer pointed to by <em class="parameter"><code>atomic</code></em> by 1.</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><em class="parameter"><code>atomic</code></em> :</span></td><td>a pointer to an integer.</td></tr></tbody></table></div><p>Since 2.4</p></div><hr><div class="refsect2" lang="en"><a name="id2844674"></a><h3><a name="g-atomic-int-dec-and-test"></a>g_atomic_int_dec_and_test ()</h3><a class="indexterm" name="id2844686"></a><pre class="programlisting"><a href="glib-Basic-Types.html#gboolean">gboolean</a> g_atomic_int_dec_and_test (<a href="glib-Basic-Types.html#gint">gint</a> *atomic);</pre><p>Atomically decrements the integer pointed to by <em class="parameter"><code>atomic</code></em> by 1.</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><em class="parameter"><code>atomic</code></em> :</span></td><td>a pointer to an integer.</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td><code class="literal">TRUE</code>, if the integer pointed to by <em class="parameter"><code>atomic</code></em> is 0 afterdecrementing it.</td></tr></tbody></table></div><p>Since 2.4</p></div></div><div class="refsect1" lang="en"><a name="id2844766"></a><h2>See Also</h2><p></p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><a href="glib-Threads.html#GMutex"><span class="type">GMutex</span></a></span></td><td><p>GLib mutual exclusions.</p></td></tr></tbody></table></div><p></p></div></div><table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="0"><tr valign="middle"><td align="left"><a accesskey="p" href="glib-Miscellaneous-Macros.html"><b><< Miscellaneous Macros</b></a></td><td align="right"><a accesskey="n" href="glib-core.html"><b>GLib Core Application Support >></b></a></td></tr></table></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -