📁 File Manager Pro
v10.0.3 | PHP: 8.1.34
Server: Apache
2026-06-21 22:35:37
📂
/ (Root)
/
opt
/
alt
/
ruby19
/
share
/
doc
/
ruby
/
html
/
dc
/
df3
📍 /opt/alt/ruby19/share/doc/ruby/html/dc/df3
🔄 Refresh
✏️
Editing: ruby__atomic_8h.html
Read Only
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta name="generator" content="Doxygen 1.8.14"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <title>Ruby: ruby_atomic.h File Reference</title> <link href="../../tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="../../jquery.js"></script> <script type="text/javascript" src="../../dynsections.js"></script> <link href="../../doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td id="projectalign" style="padding-left: 0.5em;"> <div id="projectname">Ruby  <span id="projectnumber">1.9.3p551(2014-11-13revision48407)</span> </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.14 --> <script type="text/javascript" src="../../menudata.js"></script> <script type="text/javascript" src="../../menu.js"></script> <script type="text/javascript"> /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ $(function() { initMenu('../../',false,false,'search.php','Search'); }); /* @license-end */</script> <div id="main-nav"></div> </div><!-- top --> <div class="header"> <div class="summary"> <a href="#define-members">Macros</a> | <a href="#typedef-members">Typedefs</a> | <a href="#func-members">Functions</a> </div> <div class="headertitle"> <div class="title">ruby_atomic.h File Reference</div> </div> </div><!--header--> <div class="contents"> <p><a href="../../dc/df3/ruby__atomic_8h_source.html">Go to the source code of this file.</a></p> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a> Macros</h2></td></tr> <tr class="memitem:a880ab65dd97a40d62b190dc7964a667e"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/df3/ruby__atomic_8h.html#a880ab65dd97a40d62b190dc7964a667e">NEED_RUBY_ATOMIC_EXCHANGE</a></td></tr> <tr class="separator:a880ab65dd97a40d62b190dc7964a667e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a59b1f42833e13a0b30a0ca31c3c82856"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/df3/ruby__atomic_8h.html#a59b1f42833e13a0b30a0ca31c3c82856">ATOMIC_SET</a>(var, val)   (void)((var) = (val))</td></tr> <tr class="separator:a59b1f42833e13a0b30a0ca31c3c82856"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a6f8a9b8a084fce1d517c5545cbef3270"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/df3/ruby__atomic_8h.html#a6f8a9b8a084fce1d517c5545cbef3270">ATOMIC_INC</a>(var)   ((var)++)</td></tr> <tr class="separator:a6f8a9b8a084fce1d517c5545cbef3270"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a042b840ca51bda69f1d6c0a5f2784319"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/df3/ruby__atomic_8h.html#a042b840ca51bda69f1d6c0a5f2784319">ATOMIC_DEC</a>(var)   ((var)--)</td></tr> <tr class="separator:a042b840ca51bda69f1d6c0a5f2784319"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a968f64188a3021e4affafa66cba505a9"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/df3/ruby__atomic_8h.html#a968f64188a3021e4affafa66cba505a9">ATOMIC_OR</a>(var, val)   ((var) |= (val))</td></tr> <tr class="separator:a968f64188a3021e4affafa66cba505a9"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a1d3c2e7873345772a093976101671bcd"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/df3/ruby__atomic_8h.html#a1d3c2e7873345772a093976101671bcd">ATOMIC_EXCHANGE</a>(var, val)   <a class="el" href="../../d8/d36/signal_8c.html#acf3b6f8264ab1543dbab4158750dbb92">ruby_atomic_exchange</a>(&(var), (val))</td></tr> <tr class="separator:a1d3c2e7873345772a093976101671bcd"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aea4fd5550837e294e837de36b9e5822f"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/df3/ruby__atomic_8h.html#aea4fd5550837e294e837de36b9e5822f">ATOMIC_CAS</a>(var, oldval, newval)   <a class="el" href="../../d8/d36/signal_8c.html#a7da56449011effd7908f5c67aefe3614">ruby_atomic_compare_and_swap</a>(&(var), (oldval), (newval))</td></tr> <tr class="separator:aea4fd5550837e294e837de36b9e5822f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab15faa86a24cda1e5479b3ed3e4b8fb1"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/df3/ruby__atomic_8h.html#ab15faa86a24cda1e5479b3ed3e4b8fb1">ATOMIC_SIZE_ADD</a>(var, val)   (void)((var) += (val))</td></tr> <tr class="separator:ab15faa86a24cda1e5479b3ed3e4b8fb1"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a88970def86e1240db1de4c440c9895b2"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/df3/ruby__atomic_8h.html#a88970def86e1240db1de4c440c9895b2">ATOMIC_SIZE_SUB</a>(var, val)   (void)((var) -= (val))</td></tr> <tr class="separator:a88970def86e1240db1de4c440c9895b2"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a2abe1cc6d2574d4d334ed2d719199d34"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/df3/ruby__atomic_8h.html#a2abe1cc6d2574d4d334ed2d719199d34">ATOMIC_SIZE_INC</a>(var)   ((var)++)</td></tr> <tr class="separator:a2abe1cc6d2574d4d334ed2d719199d34"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a9b57bd5ed32e19b8c603a384ff6be95a"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/df3/ruby__atomic_8h.html#a9b57bd5ed32e19b8c603a384ff6be95a">ATOMIC_SIZE_DEC</a>(var)   ((var)--)</td></tr> <tr class="separator:a9b57bd5ed32e19b8c603a384ff6be95a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aeea0d0e5cb03d1d823097e4edd898ce0"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/df3/ruby__atomic_8h.html#aeea0d0e5cb03d1d823097e4edd898ce0">ATOMIC_SIZE_EXCHANGE</a>(var, val)   <a class="el" href="../../dc/df3/ruby__atomic_8h.html#abadaded53ad97fff8a134f090be79043">atomic_size_exchange</a>(&(var), (val))</td></tr> <tr class="separator:aeea0d0e5cb03d1d823097e4edd898ce0"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:afe1f8c6cf983a670b21e5d8cb08da94c"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/df3/ruby__atomic_8h.html#afe1f8c6cf983a670b21e5d8cb08da94c">ATOMIC_SIZE_CAS</a>(var, oldval, val)   <a class="el" href="../../dc/df3/ruby__atomic_8h.html#aea4fd5550837e294e837de36b9e5822f">ATOMIC_CAS</a>(var, oldval, val)</td></tr> <tr class="separator:afe1f8c6cf983a670b21e5d8cb08da94c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a551719189fdaa4b005667fdeb31fcb41"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/df3/ruby__atomic_8h.html#a551719189fdaa4b005667fdeb31fcb41">ATOMIC_PTR_EXCHANGE</a>(var, val)   (void *)<a class="el" href="../../dc/df3/ruby__atomic_8h.html#aeea0d0e5cb03d1d823097e4edd898ce0">ATOMIC_SIZE_EXCHANGE</a>(*(size_t *)&(var), (size_t)(val))</td></tr> <tr class="separator:a551719189fdaa4b005667fdeb31fcb41"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a7544e1f15bb311ba756234002d5d268f"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/df3/ruby__atomic_8h.html#a7544e1f15bb311ba756234002d5d268f">ATOMIC_PTR_CAS</a>(var, oldval, val)   (void *)<a class="el" href="../../dc/df3/ruby__atomic_8h.html#afe1f8c6cf983a670b21e5d8cb08da94c">ATOMIC_SIZE_CAS</a>(*(size_t *)&(var), (size_t)(oldval), (size_t)(val))</td></tr> <tr class="separator:a7544e1f15bb311ba756234002d5d268f"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a> Typedefs</h2></td></tr> <tr class="memitem:a872a86eed7f070b0ea35b7494fbd9b73"><td class="memItemLeft" align="right" valign="top">typedef int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/df3/ruby__atomic_8h.html#a872a86eed7f070b0ea35b7494fbd9b73">rb_atomic_t</a></td></tr> <tr class="separator:a872a86eed7f070b0ea35b7494fbd9b73"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> Functions</h2></td></tr> <tr class="memitem:acf3b6f8264ab1543dbab4158750dbb92"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../dc/df3/ruby__atomic_8h.html#a872a86eed7f070b0ea35b7494fbd9b73">rb_atomic_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/df3/ruby__atomic_8h.html#acf3b6f8264ab1543dbab4158750dbb92">ruby_atomic_exchange</a> (<a class="el" href="../../dc/df3/ruby__atomic_8h.html#a872a86eed7f070b0ea35b7494fbd9b73">rb_atomic_t</a> *ptr, <a class="el" href="../../dc/df3/ruby__atomic_8h.html#a872a86eed7f070b0ea35b7494fbd9b73">rb_atomic_t</a> val)</td></tr> <tr class="separator:acf3b6f8264ab1543dbab4158750dbb92"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a7da56449011effd7908f5c67aefe3614"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../dc/df3/ruby__atomic_8h.html#a872a86eed7f070b0ea35b7494fbd9b73">rb_atomic_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/df3/ruby__atomic_8h.html#a7da56449011effd7908f5c67aefe3614">ruby_atomic_compare_and_swap</a> (<a class="el" href="../../dc/df3/ruby__atomic_8h.html#a872a86eed7f070b0ea35b7494fbd9b73">rb_atomic_t</a> *ptr, <a class="el" href="../../dc/df3/ruby__atomic_8h.html#a872a86eed7f070b0ea35b7494fbd9b73">rb_atomic_t</a> <a class="el" href="../../de/df1/util_8c.html#ae3b60d76128298cf2780a4612b47befe">cmp</a>, <a class="el" href="../../dc/df3/ruby__atomic_8h.html#a872a86eed7f070b0ea35b7494fbd9b73">rb_atomic_t</a> newval)</td></tr> <tr class="separator:a7da56449011effd7908f5c67aefe3614"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:abadaded53ad97fff8a134f090be79043"><td class="memItemLeft" align="right" valign="top">static size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/df3/ruby__atomic_8h.html#abadaded53ad97fff8a134f090be79043">atomic_size_exchange</a> (size_t *ptr, size_t val)</td></tr> <tr class="separator:abadaded53ad97fff8a134f090be79043"><td class="memSeparator" colspan="2"> </td></tr> </table> <h2 class="groupheader">Macro Definition Documentation</h2> <a id="aea4fd5550837e294e837de36b9e5822f"></a> <h2 class="memtitle"><span class="permalink"><a href="#aea4fd5550837e294e837de36b9e5822f">◆ </a></span>ATOMIC_CAS</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define ATOMIC_CAS</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">var, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">oldval, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">newval </td> </tr> <tr> <td></td> <td>)</td> <td></td><td>   <a class="el" href="../../d8/d36/signal_8c.html#a7da56449011effd7908f5c67aefe3614">ruby_atomic_compare_and_swap</a>(&(var), (oldval), (newval))</td> </tr> </table> </div><div class="memdoc"> <p class="definition">Definition at line <a class="el" href="../../dc/df3/ruby__atomic_8h_source.html#l00144">144</a> of file <a class="el" href="../../dc/df3/ruby__atomic_8h_source.html">ruby_atomic.h</a>.</p> </div> </div> <a id="a042b840ca51bda69f1d6c0a5f2784319"></a> <h2 class="memtitle"><span class="permalink"><a href="#a042b840ca51bda69f1d6c0a5f2784319">◆ </a></span>ATOMIC_DEC</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define ATOMIC_DEC</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">var</td><td>)</td> <td>   ((var)--)</td> </tr> </table> </div><div class="memdoc"> <p class="definition">Definition at line <a class="el" href="../../dc/df3/ruby__atomic_8h_source.html#l00141">141</a> of file <a class="el" href="../../dc/df3/ruby__atomic_8h_source.html">ruby_atomic.h</a>.</p> <p class="reference">Referenced by <a class="el" href="../../d8/d36/signal_8c_source.html#l00560">rb_get_next_signal()</a>.</p> </div> </div> <a id="a1d3c2e7873345772a093976101671bcd"></a> <h2 class="memtitle"><span class="permalink"><a href="#a1d3c2e7873345772a093976101671bcd">◆ </a></span>ATOMIC_EXCHANGE</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define ATOMIC_EXCHANGE</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">var, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">val </td> </tr> <tr> <td></td> <td>)</td> <td></td><td>   <a class="el" href="../../d8/d36/signal_8c.html#acf3b6f8264ab1543dbab4158750dbb92">ruby_atomic_exchange</a>(&(var), (val))</td> </tr> </table> </div><div class="memdoc"> <p class="definition">Definition at line <a class="el" href="../../dc/df3/ruby__atomic_8h_source.html#l00143">143</a> of file <a class="el" href="../../dc/df3/ruby__atomic_8h_source.html">ruby_atomic.h</a>.</p> <p class="reference">Referenced by <a class="el" href="../../d8/d16/gc_8c_source.html#l03055">rb_gc_finalize_deferred()</a>, <a class="el" href="../../d8/d16/gc_8c_source.html#l03088">rb_objspace_call_finalizer()</a>, and <a class="el" href="../../d3/de7/thread_8c_source.html#l01288">rb_threadptr_execute_interrupts_common()</a>.</p> </div> </div> <a id="a6f8a9b8a084fce1d517c5545cbef3270"></a> <h2 class="memtitle"><span class="permalink"><a href="#a6f8a9b8a084fce1d517c5545cbef3270">◆ </a></span>ATOMIC_INC</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define ATOMIC_INC</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">var</td><td>)</td> <td>   ((var)++)</td> </tr> </table> </div><div class="memdoc"> <p class="definition">Definition at line <a class="el" href="../../dc/df3/ruby__atomic_8h_source.html#l00140">140</a> of file <a class="el" href="../../dc/df3/ruby__atomic_8h_source.html">ruby_atomic.h</a>.</p> <p class="reference">Referenced by <a class="el" href="../../d8/d36/signal_8c_source.html#l00513">sighandler()</a>.</p> </div> </div> <a id="a968f64188a3021e4affafa66cba505a9"></a> <h2 class="memtitle"><span class="permalink"><a href="#a968f64188a3021e4affafa66cba505a9">◆ </a></span>ATOMIC_OR</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define ATOMIC_OR</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">var, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">val </td> </tr> <tr> <td></td> <td>)</td> <td></td><td>   ((var) |= (val))</td> </tr> </table> </div><div class="memdoc"> <p class="definition">Definition at line <a class="el" href="../../dc/df3/ruby__atomic_8h_source.html#l00142">142</a> of file <a class="el" href="../../dc/df3/ruby__atomic_8h_source.html">ruby_atomic.h</a>.</p> </div> </div> <a id="a7544e1f15bb311ba756234002d5d268f"></a> <h2 class="memtitle"><span class="permalink"><a href="#a7544e1f15bb311ba756234002d5d268f">◆ </a></span>ATOMIC_PTR_CAS</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define ATOMIC_PTR_CAS</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">var, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">oldval, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">val </td> </tr> <tr> <td></td> <td>)</td> <td></td><td>   (void *)<a class="el" href="../../dc/df3/ruby__atomic_8h.html#afe1f8c6cf983a670b21e5d8cb08da94c">ATOMIC_SIZE_CAS</a>(*(size_t *)&(var), (size_t)(oldval), (size_t)(val))</td> </tr> </table> </div><div class="memdoc"> <p class="definition">Definition at line <a class="el" href="../../dc/df3/ruby__atomic_8h_source.html#l00171">171</a> of file <a class="el" href="../../dc/df3/ruby__atomic_8h_source.html">ruby_atomic.h</a>.</p> <p class="reference">Referenced by <a class="el" href="../../dd/d74/iseq_8c_source.html#l00444">iseq_load()</a>.</p> </div> </div> <a id="a551719189fdaa4b005667fdeb31fcb41"></a> <h2 class="memtitle"><span class="permalink"><a href="#a551719189fdaa4b005667fdeb31fcb41">◆ </a></span>ATOMIC_PTR_EXCHANGE</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define ATOMIC_PTR_EXCHANGE</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">var, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">val </td> </tr> <tr> <td></td> <td>)</td> <td></td><td>   (void *)<a class="el" href="../../dc/df3/ruby__atomic_8h.html#aeea0d0e5cb03d1d823097e4edd898ce0">ATOMIC_SIZE_EXCHANGE</a>(*(size_t *)&(var), (size_t)(val))</td> </tr> </table> </div><div class="memdoc"> <p class="definition">Definition at line <a class="el" href="../../dc/df3/ruby__atomic_8h_source.html#l00166">166</a> of file <a class="el" href="../../dc/df3/ruby__atomic_8h_source.html">ruby_atomic.h</a>.</p> <p class="reference">Referenced by <a class="el" href="../../d8/d16/gc_8c_source.html#l03045">finalize_deferred()</a>.</p> </div> </div> <a id="a59b1f42833e13a0b30a0ca31c3c82856"></a> <h2 class="memtitle"><span class="permalink"><a href="#a59b1f42833e13a0b30a0ca31c3c82856">◆ </a></span>ATOMIC_SET</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define ATOMIC_SET</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">var, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">val </td> </tr> <tr> <td></td> <td>)</td> <td></td><td>   (void)((var) = (val))</td> </tr> </table> </div><div class="memdoc"> <p class="definition">Definition at line <a class="el" href="../../dc/df3/ruby__atomic_8h_source.html#l00139">139</a> of file <a class="el" href="../../dc/df3/ruby__atomic_8h_source.html">ruby_atomic.h</a>.</p> <p class="reference">Referenced by <a class="el" href="../../d8/d16/gc_8c_source.html#l03055">rb_gc_finalize_deferred()</a>, and <a class="el" href="../../d8/d16/gc_8c_source.html#l03088">rb_objspace_call_finalizer()</a>.</p> </div> </div> <a id="ab15faa86a24cda1e5479b3ed3e4b8fb1"></a> <h2 class="memtitle"><span class="permalink"><a href="#ab15faa86a24cda1e5479b3ed3e4b8fb1">◆ </a></span>ATOMIC_SIZE_ADD</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define ATOMIC_SIZE_ADD</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">var, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">val </td> </tr> <tr> <td></td> <td>)</td> <td></td><td>   (void)((var) += (val))</td> </tr> </table> </div><div class="memdoc"> <p class="definition">Definition at line <a class="el" href="../../dc/df3/ruby__atomic_8h_source.html#l00146">146</a> of file <a class="el" href="../../dc/df3/ruby__atomic_8h_source.html">ruby_atomic.h</a>.</p> </div> </div> <a id="afe1f8c6cf983a670b21e5d8cb08da94c"></a> <h2 class="memtitle"><span class="permalink"><a href="#afe1f8c6cf983a670b21e5d8cb08da94c">◆ </a></span>ATOMIC_SIZE_CAS</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define ATOMIC_SIZE_CAS</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">var, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">oldval, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">val </td> </tr> <tr> <td></td> <td>)</td> <td></td><td>   <a class="el" href="../../dc/df3/ruby__atomic_8h.html#aea4fd5550837e294e837de36b9e5822f">ATOMIC_CAS</a>(var, oldval, val)</td> </tr> </table> </div><div class="memdoc"> <p class="definition">Definition at line <a class="el" href="../../dc/df3/ruby__atomic_8h_source.html#l00161">161</a> of file <a class="el" href="../../dc/df3/ruby__atomic_8h_source.html">ruby_atomic.h</a>.</p> </div> </div> <a id="a9b57bd5ed32e19b8c603a384ff6be95a"></a> <h2 class="memtitle"><span class="permalink"><a href="#a9b57bd5ed32e19b8c603a384ff6be95a">◆ </a></span>ATOMIC_SIZE_DEC</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define ATOMIC_SIZE_DEC</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">var</td><td>)</td> <td>   ((var)--)</td> </tr> </table> </div><div class="memdoc"> <p class="definition">Definition at line <a class="el" href="../../dc/df3/ruby__atomic_8h_source.html#l00149">149</a> of file <a class="el" href="../../dc/df3/ruby__atomic_8h_source.html">ruby_atomic.h</a>.</p> </div> </div> <a id="aeea0d0e5cb03d1d823097e4edd898ce0"></a> <h2 class="memtitle"><span class="permalink"><a href="#aeea0d0e5cb03d1d823097e4edd898ce0">◆ </a></span>ATOMIC_SIZE_EXCHANGE</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define ATOMIC_SIZE_EXCHANGE</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">var, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">val </td> </tr> <tr> <td></td> <td>)</td> <td></td><td>   <a class="el" href="../../dc/df3/ruby__atomic_8h.html#abadaded53ad97fff8a134f090be79043">atomic_size_exchange</a>(&(var), (val))</td> </tr> </table> </div><div class="memdoc"> <p class="definition">Definition at line <a class="el" href="../../dc/df3/ruby__atomic_8h_source.html#l00150">150</a> of file <a class="el" href="../../dc/df3/ruby__atomic_8h_source.html">ruby_atomic.h</a>.</p> </div> </div> <a id="a2abe1cc6d2574d4d334ed2d719199d34"></a> <h2 class="memtitle"><span class="permalink"><a href="#a2abe1cc6d2574d4d334ed2d719199d34">◆ </a></span>ATOMIC_SIZE_INC</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define ATOMIC_SIZE_INC</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">var</td><td>)</td> <td>   ((var)++)</td> </tr> </table> </div><div class="memdoc"> <p class="definition">Definition at line <a class="el" href="../../dc/df3/ruby__atomic_8h_source.html#l00148">148</a> of file <a class="el" href="../../dc/df3/ruby__atomic_8h_source.html">ruby_atomic.h</a>.</p> </div> </div> <a id="a88970def86e1240db1de4c440c9895b2"></a> <h2 class="memtitle"><span class="permalink"><a href="#a88970def86e1240db1de4c440c9895b2">◆ </a></span>ATOMIC_SIZE_SUB</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define ATOMIC_SIZE_SUB</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">var, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">val </td> </tr> <tr> <td></td> <td>)</td> <td></td><td>   (void)((var) -= (val))</td> </tr> </table> </div><div class="memdoc"> <p class="definition">Definition at line <a class="el" href="../../dc/df3/ruby__atomic_8h_source.html#l00147">147</a> of file <a class="el" href="../../dc/df3/ruby__atomic_8h_source.html">ruby_atomic.h</a>.</p> </div> </div> <a id="a880ab65dd97a40d62b190dc7964a667e"></a> <h2 class="memtitle"><span class="permalink"><a href="#a880ab65dd97a40d62b190dc7964a667e">◆ </a></span>NEED_RUBY_ATOMIC_EXCHANGE</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define NEED_RUBY_ATOMIC_EXCHANGE</td> </tr> </table> </div><div class="memdoc"> <p class="definition">Definition at line <a class="el" href="../../dc/df3/ruby__atomic_8h_source.html#l00133">133</a> of file <a class="el" href="../../dc/df3/ruby__atomic_8h_source.html">ruby_atomic.h</a>.</p> </div> </div> <h2 class="groupheader">Typedef Documentation</h2> <a id="a872a86eed7f070b0ea35b7494fbd9b73"></a> <h2 class="memtitle"><span class="permalink"><a href="#a872a86eed7f070b0ea35b7494fbd9b73">◆ </a></span>rb_atomic_t</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef int <a class="el" href="../../dc/df3/ruby__atomic_8h.html#a872a86eed7f070b0ea35b7494fbd9b73">rb_atomic_t</a></td> </tr> </table> </div><div class="memdoc"> <p class="definition">Definition at line <a class="el" href="../../dc/df3/ruby__atomic_8h_source.html#l00132">132</a> of file <a class="el" href="../../dc/df3/ruby__atomic_8h_source.html">ruby_atomic.h</a>.</p> </div> </div> <h2 class="groupheader">Function Documentation</h2> <a id="abadaded53ad97fff8a134f090be79043"></a> <h2 class="memtitle"><span class="permalink"><a href="#abadaded53ad97fff8a134f090be79043">◆ </a></span>atomic_size_exchange()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">static size_t atomic_size_exchange </td> <td>(</td> <td class="paramtype">size_t * </td> <td class="paramname"><em>ptr</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"><em>val</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> <p class="definition">Definition at line <a class="el" href="../../dc/df3/ruby__atomic_8h_source.html#l00152">152</a> of file <a class="el" href="../../dc/df3/ruby__atomic_8h_source.html">ruby_atomic.h</a>.</p> </div> </div> <a id="a7da56449011effd7908f5c67aefe3614"></a> <h2 class="memtitle"><span class="permalink"><a href="#a7da56449011effd7908f5c67aefe3614">◆ </a></span>ruby_atomic_compare_and_swap()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="../../dc/df3/ruby__atomic_8h.html#a872a86eed7f070b0ea35b7494fbd9b73">rb_atomic_t</a> ruby_atomic_compare_and_swap </td> <td>(</td> <td class="paramtype"><a class="el" href="../../dc/df3/ruby__atomic_8h.html#a872a86eed7f070b0ea35b7494fbd9b73">rb_atomic_t</a> * </td> <td class="paramname"><em>ptr</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="../../dc/df3/ruby__atomic_8h.html#a872a86eed7f070b0ea35b7494fbd9b73">rb_atomic_t</a> </td> <td class="paramname"><em>cmp</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="../../dc/df3/ruby__atomic_8h.html#a872a86eed7f070b0ea35b7494fbd9b73">rb_atomic_t</a> </td> <td class="paramname"><em>newval</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p class="definition">Definition at line <a class="el" href="../../d8/d36/signal_8c_source.html#l00034">34</a> of file <a class="el" href="../../d8/d36/signal_8c_source.html">signal.c</a>.</p> <p class="reference">References <a class="el" href="../../de/d6d/compar_8c_source.html#l00016">cmp</a>.</p> </div> </div> <a id="acf3b6f8264ab1543dbab4158750dbb92"></a> <h2 class="memtitle"><span class="permalink"><a href="#acf3b6f8264ab1543dbab4158750dbb92">◆ </a></span>ruby_atomic_exchange()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="../../dc/df3/ruby__atomic_8h.html#a872a86eed7f070b0ea35b7494fbd9b73">rb_atomic_t</a> ruby_atomic_exchange </td> <td>(</td> <td class="paramtype"><a class="el" href="../../dc/df3/ruby__atomic_8h.html#a872a86eed7f070b0ea35b7494fbd9b73">rb_atomic_t</a> * </td> <td class="paramname"><em>ptr</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="../../dc/df3/ruby__atomic_8h.html#a872a86eed7f070b0ea35b7494fbd9b73">rb_atomic_t</a> </td> <td class="paramname"><em>val</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p class="definition">Definition at line <a class="el" href="../../d8/d36/signal_8c_source.html#l00026">26</a> of file <a class="el" href="../../d8/d36/signal_8c_source.html">signal.c</a>.</p> </div> </div> </div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="../../doxygen.png" alt="doxygen"/> </a> 1.8.14 </small></address> </body> </html>
💾 Save Changes
❌ Cancel