📄 glib-atomic-operations.html
字号:
<td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td><td>the value to add to *<em class="parameter"><code>atomic</code></em>.</td></tr><tr><td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td><td>the value of *<em class="parameter"><code>atomic</code></em> before the addition.</td></tr></tbody></table></div><p class="since">Since 2.4</p></div><hr><div class="refsect2" lang="en"><a name="id2851757"></a><h3><a name="g-atomic-int-compare-and-exchange"></a>g_atomic_int_compare_and_exchange ()</h3><a class="indexterm" name="id2851773"></a><pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean">gboolean</a> g_atomic_int_compare_and_exchange (volatile <a class="link" href="glib-Basic-Types.html#gint">gint</a> *atomic, <a class="link" href="glib-Basic-Types.html#gint">gint</a> oldval, <a class="link" 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><p><span class="term"><em class="parameter"><code>atomic</code></em> :</span></p></td><td>a pointer to an integer.</td></tr><tr><td><p><span class="term"><em class="parameter"><code>oldval</code></em> :</span></p></td><td>the assumed old value of *<em class="parameter"><code>atomic</code></em>.</td></tr><tr><td><p><span class="term"><em class="parameter"><code>newval</code></em> :</span></p></td><td>the new value of *<em class="parameter"><code>atomic</code></em>.</td></tr><tr><td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td><td><a class="link" href="glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if *<em class="parameter"><code>atomic</code></em> was equal <em class="parameter"><code>oldval</code></em>. <a class="link" href="glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</td></tr></tbody></table></div><p class="since">Since 2.4</p></div><hr><div class="refsect2" lang="en"><a name="id2851949"></a><h3><a name="g-atomic-pointer-get"></a>g_atomic_pointer_get ()</h3><a class="indexterm" name="id2851964"></a><pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gpointer">gpointer</a> g_atomic_pointer_get (volatile <a class="link" 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><p><span class="term"><em class="parameter"><code>atomic</code></em> :</span></p></td><td>a pointer to a <a class="link" href="glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>.</td></tr><tr><td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td><td>the value to add to *<em class="parameter"><code>atomic</code></em>.</td></tr></tbody></table></div><p class="since">Since 2.4</p></div><hr><div class="refsect2" lang="en"><a name="id2852049"></a><h3><a name="g-atomic-pointer-set"></a>g_atomic_pointer_set ()</h3><a class="indexterm" name="id2852065"></a><pre class="programlisting">void g_atomic_pointer_set (volatile <a class="link" href="glib-Basic-Types.html#gpointer">gpointer</a> *atomic, <a class="link" href="glib-Basic-Types.html#gpointer">gpointer</a> newval);</pre><p>Sets the value of the pointer pointed to by <em class="parameter"><code>atomic</code></em>. Also acts as a memory barrier.</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><p><span class="term"><em class="parameter"><code>atomic</code></em> :</span></p></td><td>a pointer to a <a class="link" href="glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a></td></tr><tr><td><p><span class="term"><em class="parameter"><code>newval</code></em> :</span></p></td><td>the new value</td></tr></tbody></table></div><p class="since">Since 2.10</p></div><hr><div class="refsect2" lang="en"><a name="id2852156"></a><h3><a name="g-atomic-pointer-compare-and-exchange"></a>g_atomic_pointer_compare_and_exchange ()</h3><a class="indexterm" name="id2852172"></a><pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean">gboolean</a> g_atomic_pointer_compare_and_exchange (volatile <a class="link" href="glib-Basic-Types.html#gpointer">gpointer</a> *atomic, <a class="link" href="glib-Basic-Types.html#gpointer">gpointer</a> oldval, <a class="link" 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><p><span class="term"><em class="parameter"><code>atomic</code></em> :</span></p></td><td>a pointer to a <a class="link" href="glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>.</td></tr><tr><td><p><span class="term"><em class="parameter"><code>oldval</code></em> :</span></p></td><td>the assumed old value of *<em class="parameter"><code>atomic</code></em>.</td></tr><tr><td><p><span class="term"><em class="parameter"><code>newval</code></em> :</span></p></td><td>the new value of *<em class="parameter"><code>atomic</code></em>.</td></tr><tr><td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td><td><a class="link" href="glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if *<em class="parameter"><code>atomic</code></em> was equal <em class="parameter"><code>oldval</code></em>. <a class="link" href="glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</td></tr></tbody></table></div><p class="since">Since 2.4</p></div><hr><div class="refsect2" lang="en"><a name="id2852356"></a><h3><a name="g-atomic-int-inc"></a>g_atomic_int_inc ()</h3><a class="indexterm" name="id2852372"></a><pre class="programlisting">void g_atomic_int_inc (<a class="link" 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><p><span class="term"><em class="parameter"><code>atomic</code></em> :</span></p></td><td>a pointer to an integer.</td></tr></tbody></table></div><p class="since">Since 2.4</p></div><hr><div class="refsect2" lang="en"><a name="id2852432"></a><h3><a name="g-atomic-int-dec-and-test"></a>g_atomic_int_dec_and_test ()</h3><a class="indexterm" name="id2852448"></a><pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean">gboolean</a> g_atomic_int_dec_and_test (<a class="link" 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><p><span class="term"><em class="parameter"><code>atomic</code></em> :</span></p></td><td>a pointer to an integer.</td></tr><tr><td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td><td><a class="link" href="glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if the integer pointed to by <em class="parameter"><code>atomic</code></em> is 0 afterdecrementing it.</td></tr></tbody></table></div><p class="since">Since 2.4</p></div></div><div class="refsect1" lang="en"><a name="id2852535"></a><h2>See Also</h2><p></p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><p><span class="term"><a class="link" href="glib-Threads.html#GMutex"><span class="type">GMutex</span></a></span></p></td><td><p>GLib mutual exclusions.</p></td></tr></tbody></table></div><p></p></div><div class="refsect1" lang="en"><a name="id2852565"></a><div class="refsect2" lang="en"><a name="id2852566"></a></div><hr><div class="refsect2" lang="en"><a name="id2852567"></a></div></div></div></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -