Sophie

Sophie

distrib > Mandriva > 2010.1 > x86_64 > media > main-updates > by-pkgid > f36f42783f75191f5f2d47f1e8c5504e > files > 663

lib64commoncpp-devel-1.8.0-5.1mdv2010.1.x86_64.rpm

<!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"/>
<title>GNU CommonC++: thread2.cpp</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.3 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
</div>
<div class="contents">
<h1>thread2.cpp</h1><div class="fragment"><pre class="fragment"><span class="preprocessor">#include &lt;<a class="code" href="thread_8h.html" title="Synchronization and threading services.">cc++/thread.h</a>&gt;</span>
<span class="preprocessor">#include &lt;cstdio&gt;</span>
<span class="preprocessor">#include &lt;cstring&gt;</span>
<span class="preprocessor">#include &lt;iostream&gt;</span>

<span class="preprocessor">#ifdef  CCXX_NAMESPACES</span>
<span class="preprocessor"></span><span class="keyword">using namespace </span>std;
<span class="keyword">using namespace </span>ost;
<span class="preprocessor">#endif</span>
<span class="preprocessor"></span>
<span class="comment">// Test child thread destroying before father</span>
<span class="comment">//</span>
<span class="keyword">class </span>Child: <span class="keyword">public</span> <a name="_a0"></a><a class="code" href="classost_1_1_thread.html" title="Every thread of execution in an application is created by instantiating an object...">Thread</a>
{
<span class="keyword">public</span>:
        Child()
        { }
        <span class="keywordtype">void</span> <a name="a1"></a><a class="code" href="classost_1_1_thread.html#add7d339d94b8a1ed2b2b0324a95b7e74" title="All threads execute by deriving the Run method of Thread.">run</a>() {
                cout &lt;&lt; <span class="stringliteral">&quot;child start&quot;</span> &lt;&lt; endl;
                Thread::sleep(3000);
                cout &lt;&lt; <span class="stringliteral">&quot;child end&quot;</span> &lt;&lt; endl;
        }
        <span class="keywordtype">void</span> <span class="keyword">final</span>() {
<span class="comment">//              delete this;</span>
        }
};

<span class="keyword">class </span>Father: <span class="keyword">public</span> <a class="code" href="classost_1_1_thread.html" title="Every thread of execution in an application is created by instantiating an object...">Thread</a>
{
<span class="keyword">public</span>:
        Father()
        { }
        <span class="keywordtype">void</span> <a class="code" href="classost_1_1_thread.html#add7d339d94b8a1ed2b2b0324a95b7e74" title="All threads execute by deriving the Run method of Thread.">run</a>() {
                cout &lt;&lt; <span class="stringliteral">&quot;starting child thread&quot;</span> &lt;&lt; endl;
                <a class="code" href="classost_1_1_thread.html" title="Every thread of execution in an application is created by instantiating an object...">Thread</a> *th = <span class="keyword">new</span> Child();
                th-&gt;<a name="a2"></a><a class="code" href="classost_1_1_thread.html#ac30778f0fffd9dd952fd73cb541cc70b" title="Start a new thread as &amp;quot;detached&amp;quot;.">detach</a>();
                Thread::sleep(1000);
                cout &lt;&lt; <span class="stringliteral">&quot;father end&quot;</span> &lt;&lt; endl;
        }
        <span class="keywordtype">void</span> <span class="keyword">final</span>() {
                <span class="comment">// delete this; - not used since detached threads self delete</span>
                <span class="comment">// reset memory to test access violation</span>
                memset(<span class="keyword">this</span>,0,<span class="keyword">sizeof</span>(*<span class="keyword">this</span>));
        }
};

<span class="keywordtype">int</span> main(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>* argv[])
{
        cout &lt;&lt; <span class="stringliteral">&quot;starting father thread&quot;</span> &lt;&lt; endl;
        Father *th = <span class="keyword">new</span> Father();
        th-&gt;start();
        Thread::sleep(10000);

        <span class="keywordflow">return</span> 0;
}

</pre></div> </div>
<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Nov 12 09:57:38 2010 for GNU CommonC++ by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
</html>