File "thread__pthread_8h_source.html"

Full Path: /home/attunedd/public_html/byp/izo/con7ext_sym404/rintoar.txt/opt/alt/ruby19/share/doc/ruby/html/d2/d82/thread__pthread_8h_source.html
File size: 19.7 KB
MIME-type: text/html
Charset: utf-8

<!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: thread_pthread.h Source File</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
   &#160;<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&amp;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="headertitle">
<div class="title">thread_pthread.h</div>  </div>
</div><!--header-->
<div class="contents">
<a href="../../d2/d82/thread__pthread_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment">  thread_pthread.h -</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment">  $Author: kosaki $</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment">  Copyright (C) 2004-2007 Koichi Sasada</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment">**********************************************************************/</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;</div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="preprocessor">#ifndef RUBY_THREAD_PTHREAD_H</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#define RUBY_THREAD_PTHREAD_H</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &lt;pthread.h&gt;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#ifdef HAVE_PTHREAD_NP_H</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &lt;pthread_np.h&gt;</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00018"></a><span class="lineno"><a class="line" href="../../d2/d82/thread__pthread_8h.html#a605b74cf6a0a0164ef1d6a633f5e70c9">   18</a></span>&#160;<span class="keyword">typedef</span> pthread_t <a class="code" href="../../d2/d82/thread__pthread_8h.html#a605b74cf6a0a0164ef1d6a633f5e70c9">rb_thread_id_t</a>;</div><div class="line"><a name="l00019"></a><span class="lineno"><a class="line" href="../../d2/d82/thread__pthread_8h.html#aad27e6c1e30cf79f10930122e8ae405e">   19</a></span>&#160;<span class="keyword">typedef</span> pthread_mutex_t <a class="code" href="../../d2/d82/thread__pthread_8h.html#aad27e6c1e30cf79f10930122e8ae405e">rb_thread_lock_t</a>;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"><a class="line" href="../../d0/d6c/structrb__thread__cond__struct.html">   21</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="../../d0/d6c/structrb__thread__cond__struct.html">rb_thread_cond_struct</a> {</div><div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="../../d0/d6c/structrb__thread__cond__struct.html#aeb24f523a70463c675f1a739038eaf1a">   22</a></span>&#160;    pthread_cond_t <a class="code" href="../../d0/d6c/structrb__thread__cond__struct.html#aeb24f523a70463c675f1a739038eaf1a">cond</a>;</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#ifdef HAVE_CLOCKID_T</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;    clockid_t clockid;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;} <a class="code" href="../../d2/d82/thread__pthread_8h.html#a6d966b050a239971c71c8b7857d88365">rb_thread_cond_t</a>;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="../../d9/dae/structnative__thread__data__struct.html">   28</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="../../d9/dae/structnative__thread__data__struct.html">native_thread_data_struct</a> {</div><div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="../../d9/dae/structnative__thread__data__struct.html#a144da313977e6bb9229cb2ae5ec7feb1">   29</a></span>&#160;    <span class="keywordtype">void</span> *<a class="code" href="../../d9/dae/structnative__thread__data__struct.html#a144da313977e6bb9229cb2ae5ec7feb1">signal_thread_list</a>;</div><div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="../../d9/dae/structnative__thread__data__struct.html#aa90ac8836ed5c4d26d6be4120ecd6054">   30</a></span>&#160;    <a class="code" href="../../d0/d6c/structrb__thread__cond__struct.html">rb_thread_cond_t</a> <a class="code" href="../../d9/dae/structnative__thread__data__struct.html#aa90ac8836ed5c4d26d6be4120ecd6054">sleep_cond</a>;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;} <a class="code" href="../../d2/d82/thread__pthread_8h.html#a1730b74045959e1db34dfb31caddc0eb">native_thread_data_t</a>;</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#include &lt;semaphore.h&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="../../d3/d61/structrb__global__vm__lock__struct.html">   35</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="../../d3/d61/structrb__global__vm__lock__struct.html">rb_global_vm_lock_struct</a> {</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;    <span class="comment">/* fast path */</span></div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="../../d3/d61/structrb__global__vm__lock__struct.html#a615841146b7c9b86aa90bec80144fdd4">   37</a></span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="../../d3/d61/structrb__global__vm__lock__struct.html#a615841146b7c9b86aa90bec80144fdd4">acquired</a>;</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="../../d3/d61/structrb__global__vm__lock__struct.html#a948be6b7a74025df722091e4da6d9701">   38</a></span>&#160;    pthread_mutex_t <a class="code" href="../../d3/d61/structrb__global__vm__lock__struct.html#a948be6b7a74025df722091e4da6d9701">lock</a>;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;    <span class="comment">/* slow path */</span></div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="../../d3/d61/structrb__global__vm__lock__struct.html#ad29605e99fcf3859e286ef2765f03149">   41</a></span>&#160;    <span class="keyword">volatile</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="../../d3/d61/structrb__global__vm__lock__struct.html#ad29605e99fcf3859e286ef2765f03149">waiting</a>;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="../../d3/d61/structrb__global__vm__lock__struct.html#addd15fc58f843f57ef20f2eb476aa42c">   42</a></span>&#160;    <a class="code" href="../../d0/d6c/structrb__thread__cond__struct.html">rb_thread_cond_t</a> <a class="code" href="../../d3/d61/structrb__global__vm__lock__struct.html#addd15fc58f843f57ef20f2eb476aa42c">cond</a>;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;    <span class="comment">/* yield */</span></div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="../../d3/d61/structrb__global__vm__lock__struct.html#acc4c61d6a2560d4639098de581cfc2b2">   45</a></span>&#160;    <a class="code" href="../../d0/d6c/structrb__thread__cond__struct.html">rb_thread_cond_t</a> <a class="code" href="../../d3/d61/structrb__global__vm__lock__struct.html#acc4c61d6a2560d4639098de581cfc2b2">switch_cond</a>;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="../../d3/d61/structrb__global__vm__lock__struct.html#a34e139f2c60eee1ed4a0a9685cf1ab64">   46</a></span>&#160;    <a class="code" href="../../d0/d6c/structrb__thread__cond__struct.html">rb_thread_cond_t</a> <a class="code" href="../../d3/d61/structrb__global__vm__lock__struct.html#a34e139f2c60eee1ed4a0a9685cf1ab64">switch_wait_cond</a>;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="../../d3/d61/structrb__global__vm__lock__struct.html#a871bd453d1a5d4321e11a4d0a3983c78">   47</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="../../d3/d61/structrb__global__vm__lock__struct.html#a871bd453d1a5d4321e11a4d0a3983c78">need_yield</a>;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="../../d3/d61/structrb__global__vm__lock__struct.html#ae665ab760ae2fdf50a508074f72a9edb">   48</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="../../d3/d61/structrb__global__vm__lock__struct.html#ae665ab760ae2fdf50a508074f72a9edb">wait_yield</a>;</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;} <a class="code" href="../../d2/d82/thread__pthread_8h.html#af6180b2b92edd0c7033a86693246010b">rb_global_vm_lock_t</a>;</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* RUBY_THREAD_PTHREAD_H */</span><span class="preprocessor"></span></div><div class="ttc" id="structrb__global__vm__lock__struct_html_ae665ab760ae2fdf50a508074f72a9edb"><div class="ttname"><a href="../../d3/d61/structrb__global__vm__lock__struct.html#ae665ab760ae2fdf50a508074f72a9edb">rb_global_vm_lock_struct::wait_yield</a></div><div class="ttdeci">int wait_yield</div><div class="ttdef"><b>Definition:</b> <a href="../../d2/d82/thread__pthread_8h_source.html#l00048">thread_pthread.h:48</a></div></div>
<div class="ttc" id="structrb__global__vm__lock__struct_html_ad29605e99fcf3859e286ef2765f03149"><div class="ttname"><a href="../../d3/d61/structrb__global__vm__lock__struct.html#ad29605e99fcf3859e286ef2765f03149">rb_global_vm_lock_struct::waiting</a></div><div class="ttdeci">volatile unsigned long waiting</div><div class="ttdef"><b>Definition:</b> <a href="../../d2/d82/thread__pthread_8h_source.html#l00041">thread_pthread.h:41</a></div></div>
<div class="ttc" id="structnative__thread__data__struct_html_a144da313977e6bb9229cb2ae5ec7feb1"><div class="ttname"><a href="../../d9/dae/structnative__thread__data__struct.html#a144da313977e6bb9229cb2ae5ec7feb1">native_thread_data_struct::signal_thread_list</a></div><div class="ttdeci">void * signal_thread_list</div><div class="ttdef"><b>Definition:</b> <a href="../../d2/d82/thread__pthread_8h_source.html#l00029">thread_pthread.h:29</a></div></div>
<div class="ttc" id="thread__pthread_8h_html_aad27e6c1e30cf79f10930122e8ae405e"><div class="ttname"><a href="../../d2/d82/thread__pthread_8h.html#aad27e6c1e30cf79f10930122e8ae405e">rb_thread_lock_t</a></div><div class="ttdeci">pthread_mutex_t rb_thread_lock_t</div><div class="ttdef"><b>Definition:</b> <a href="../../d2/d82/thread__pthread_8h_source.html#l00019">thread_pthread.h:19</a></div></div>
<div class="ttc" id="structrb__global__vm__lock__struct_html_acc4c61d6a2560d4639098de581cfc2b2"><div class="ttname"><a href="../../d3/d61/structrb__global__vm__lock__struct.html#acc4c61d6a2560d4639098de581cfc2b2">rb_global_vm_lock_struct::switch_cond</a></div><div class="ttdeci">rb_thread_cond_t switch_cond</div><div class="ttdef"><b>Definition:</b> <a href="../../d2/d82/thread__pthread_8h_source.html#l00045">thread_pthread.h:45</a></div></div>
<div class="ttc" id="thread__pthread_8h_html_a6d966b050a239971c71c8b7857d88365"><div class="ttname"><a href="../../d2/d82/thread__pthread_8h.html#a6d966b050a239971c71c8b7857d88365">rb_thread_cond_t</a></div><div class="ttdeci">struct rb_thread_cond_struct rb_thread_cond_t</div></div>
<div class="ttc" id="structnative__thread__data__struct_html"><div class="ttname"><a href="../../d9/dae/structnative__thread__data__struct.html">native_thread_data_struct</a></div><div class="ttdef"><b>Definition:</b> <a href="../../d2/d82/thread__pthread_8h_source.html#l00028">thread_pthread.h:28</a></div></div>
<div class="ttc" id="thread__pthread_8h_html_a605b74cf6a0a0164ef1d6a633f5e70c9"><div class="ttname"><a href="../../d2/d82/thread__pthread_8h.html#a605b74cf6a0a0164ef1d6a633f5e70c9">rb_thread_id_t</a></div><div class="ttdeci">pthread_t rb_thread_id_t</div><div class="ttdef"><b>Definition:</b> <a href="../../d2/d82/thread__pthread_8h_source.html#l00018">thread_pthread.h:18</a></div></div>
<div class="ttc" id="thread__pthread_8h_html_a1730b74045959e1db34dfb31caddc0eb"><div class="ttname"><a href="../../d2/d82/thread__pthread_8h.html#a1730b74045959e1db34dfb31caddc0eb">native_thread_data_t</a></div><div class="ttdeci">struct native_thread_data_struct native_thread_data_t</div></div>
<div class="ttc" id="structrb__global__vm__lock__struct_html_addd15fc58f843f57ef20f2eb476aa42c"><div class="ttname"><a href="../../d3/d61/structrb__global__vm__lock__struct.html#addd15fc58f843f57ef20f2eb476aa42c">rb_global_vm_lock_struct::cond</a></div><div class="ttdeci">rb_thread_cond_t cond</div><div class="ttdef"><b>Definition:</b> <a href="../../d2/d82/thread__pthread_8h_source.html#l00042">thread_pthread.h:42</a></div></div>
<div class="ttc" id="structrb__global__vm__lock__struct_html_a34e139f2c60eee1ed4a0a9685cf1ab64"><div class="ttname"><a href="../../d3/d61/structrb__global__vm__lock__struct.html#a34e139f2c60eee1ed4a0a9685cf1ab64">rb_global_vm_lock_struct::switch_wait_cond</a></div><div class="ttdeci">rb_thread_cond_t switch_wait_cond</div><div class="ttdef"><b>Definition:</b> <a href="../../d2/d82/thread__pthread_8h_source.html#l00046">thread_pthread.h:46</a></div></div>
<div class="ttc" id="structrb__thread__cond__struct_html"><div class="ttname"><a href="../../d0/d6c/structrb__thread__cond__struct.html">rb_thread_cond_struct</a></div><div class="ttdef"><b>Definition:</b> <a href="../../d2/d82/thread__pthread_8h_source.html#l00021">thread_pthread.h:21</a></div></div>
<div class="ttc" id="structnative__thread__data__struct_html_aa90ac8836ed5c4d26d6be4120ecd6054"><div class="ttname"><a href="../../d9/dae/structnative__thread__data__struct.html#aa90ac8836ed5c4d26d6be4120ecd6054">native_thread_data_struct::sleep_cond</a></div><div class="ttdeci">rb_thread_cond_t sleep_cond</div><div class="ttdef"><b>Definition:</b> <a href="../../d2/d82/thread__pthread_8h_source.html#l00030">thread_pthread.h:30</a></div></div>
<div class="ttc" id="structrb__thread__cond__struct_html_aeb24f523a70463c675f1a739038eaf1a"><div class="ttname"><a href="../../d0/d6c/structrb__thread__cond__struct.html#aeb24f523a70463c675f1a739038eaf1a">rb_thread_cond_struct::cond</a></div><div class="ttdeci">pthread_cond_t cond</div><div class="ttdef"><b>Definition:</b> <a href="../../d2/d82/thread__pthread_8h_source.html#l00022">thread_pthread.h:22</a></div></div>
<div class="ttc" id="structrb__global__vm__lock__struct_html_a615841146b7c9b86aa90bec80144fdd4"><div class="ttname"><a href="../../d3/d61/structrb__global__vm__lock__struct.html#a615841146b7c9b86aa90bec80144fdd4">rb_global_vm_lock_struct::acquired</a></div><div class="ttdeci">unsigned long acquired</div><div class="ttdef"><b>Definition:</b> <a href="../../d2/d82/thread__pthread_8h_source.html#l00037">thread_pthread.h:37</a></div></div>
<div class="ttc" id="structrb__global__vm__lock__struct_html_a871bd453d1a5d4321e11a4d0a3983c78"><div class="ttname"><a href="../../d3/d61/structrb__global__vm__lock__struct.html#a871bd453d1a5d4321e11a4d0a3983c78">rb_global_vm_lock_struct::need_yield</a></div><div class="ttdeci">int need_yield</div><div class="ttdef"><b>Definition:</b> <a href="../../d2/d82/thread__pthread_8h_source.html#l00047">thread_pthread.h:47</a></div></div>
<div class="ttc" id="structrb__global__vm__lock__struct_html_a948be6b7a74025df722091e4da6d9701"><div class="ttname"><a href="../../d3/d61/structrb__global__vm__lock__struct.html#a948be6b7a74025df722091e4da6d9701">rb_global_vm_lock_struct::lock</a></div><div class="ttdeci">pthread_mutex_t lock</div><div class="ttdef"><b>Definition:</b> <a href="../../d2/d82/thread__pthread_8h_source.html#l00038">thread_pthread.h:38</a></div></div>
<div class="ttc" id="thread__pthread_8h_html_af6180b2b92edd0c7033a86693246010b"><div class="ttname"><a href="../../d2/d82/thread__pthread_8h.html#af6180b2b92edd0c7033a86693246010b">rb_global_vm_lock_t</a></div><div class="ttdeci">struct rb_global_vm_lock_struct rb_global_vm_lock_t</div></div>
<div class="ttc" id="structrb__global__vm__lock__struct_html"><div class="ttname"><a href="../../d3/d61/structrb__global__vm__lock__struct.html">rb_global_vm_lock_struct</a></div><div class="ttdef"><b>Definition:</b> <a href="../../d2/d82/thread__pthread_8h_source.html#l00035">thread_pthread.h:35</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="../../doxygen.png" alt="doxygen"/>
</a> 1.8.14
</small></address>
</body>
</html>