<div><font color="#550055" size="1"></font>&nbsp;</div>
<div><font color="#550055" size="1"></font>&nbsp;</div>
<div><font color="#550055" size="1">ACE VERSION: 5.5.8<br><br>HOST MACHINE and OPERATING SYSTEM:<br>Windows XP Professional and Enterprise Linux 5.0<br><br>Version 2002<br><br>TARGET MACHINE and OPERATING SYSTEM, if different from HOST:NO<br>
<br>COMPILER NAME AND VERSION (AND PATCHLEVEL):<br><br>Visual studio 2005<br><br>THE $ACE_ROOT/ace/config.h FILE<br><br>#include &quot;ace/config-win32.h&quot; &nbsp; for windows<br><br>#include &quot;ace/config-linux.h&quot; &nbsp; for linux<br>
<br>DOES THE PROBLEM AFFECT:<br><br>&nbsp;&nbsp;&nbsp;&nbsp;COMPILATION? &nbsp; NO<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LINKING? &nbsp; &nbsp; &nbsp; NO<br><br>&nbsp;&nbsp;&nbsp;EXECUTION? &nbsp; &nbsp; YES<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OTHER<br><br>&nbsp;&nbsp;&nbsp;SYNOPSIS:<br><br>Use of ACE_RW_Process_Mutex.I developed a very simple program which needs to be<br>
extended for Multiple readers and single writer ( shared memory concept<br>using a Hash Map with allocator)<br><br>Even a single Reader and single writer are not getting in sync.<br>&nbsp;</font></div>
<div style="DIRECTION: ltr">
<p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font size="1">I am attaching a code and description of the output and the problem.</font></span></p>
<p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font size="1"></font></span>&nbsp;</p>
<p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font size="1">DESCRIPTION.</font></span></p></div>
<div><font size="1">I also tried it using ACE_Process_Mutex by just replacing the <font style="BACKGROUND-COLOR: #33ccff">ACE_RW_Process_Mutex</font> in code by ACE_Process_Mutex .With ACE_Process_Mutex ,synchronization is proper and writer and reader are acquiring and releasing in correct order .(when writer is releasing, then only reader is acquiring and vice versa. The output for the same is in last of the mail).<br>
<br>BUT when using ACE_RW_Process_Mutex ,the writer and reader are not in sync.<br><br>If we see the output for this as mentioned below, writer has acquired the mutex at <br><br>88112592 millisec and released at 88114592 millisec i..e writer is working for 2 sec and has acquired mutex for 2 sec.<br>
<br></font><font size="1"><font style="BACKGROUND-COLOR: #ffff66">(writer acquired&nbsp;&nbsp;&nbsp; 1&nbsp; &nbsp; at&nbsp;&nbsp; 88112592<br><br>&nbsp;writer released&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp; at&nbsp;&nbsp; 88114592)<br></font><br>Now when we see the Reader, it has acquired the mutex at 88112872 millisec.<br>
<br></font><font size="1"><font style="BACKGROUND-COLOR: #33ff33">(Reader acquired&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp; at&nbsp;&nbsp; 88112872<br><br>Reader released&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp; at&nbsp;&nbsp; 88114872)<br></font><br>This should ideally not happen as mutex is still with the writer and it is relasing at 88114592 millisec.</font><span><br>
<br><font size="1">&nbsp;int ACE_TMAIN (int argc, ACE_TCHAR *argv[])<br><br><br>{<br><br></font></span><span><font size="1">int count =0;<br><br>float ltime=0;<br><br></font></span><span><font size="1">&nbsp;&nbsp;&nbsp; <font style="BACKGROUND-COLOR: #33ccff">ACE_RW_Process_Mutex</font> m_RWMutex(ACE_TEXT(&quot;MyMutex&quot;));<br>
<br></font></span><span><font size="1">&nbsp;&nbsp;&nbsp; if (agrc == 1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // For server which is writing<br><br>&nbsp;&nbsp;&nbsp; {<br><br></font></span><font size="1"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while (1)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (m_RWMutex.acquire_write() == 0)<br>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br><br></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ltime = ::GetTickCount();&nbsp; //number of millisec since the system has started<span></span> </font><span><br><br><font size="1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_OS::printf(&quot;Writer acquired...%d&nbsp; at: %f\n&quot;,count++,ltime);<br>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_OS::sleep(2);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ltime = ::GetTickCount();<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_OS::printf(&quot;Writer releasing... ...%d&nbsp; at: %f\n&quot;,count++,ltime);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_RWMutex.release();<br>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; else&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //For Client which is reading <br><br>&nbsp;&nbsp;&nbsp; {<br><br></font></span><span><font size="1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while (1)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (m_RWMutex.acquire_read() == 0)<br>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br><br></font></span><span><font size="1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ltime = ::GetTickCount(); <br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; ACE_OS::printf(&quot;Reader acquired... ...%d&nbsp; at: %f\n&quot;,count++,ltime);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_OS::sleep(2);<br>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ltime = ::GetTickCount();<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_OS::printf(&quot;Reader releasing...%d&nbsp; at: %f\n&quot;,count++,ltime);<br><br></font></span><font size="1"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_RWMutex.release();<br>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; return 0;<br><br>}</span> </font></div>
<div><font size="1">&nbsp;</font></div>
<div><font size="1">OUTPUT&nbsp;&nbsp;is like this(WITH ACE_RW_Process_Mutex):<br>&nbsp;<br><br><br>Writer&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; count&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TimeStamp(in millisec)&nbsp;</font><span><br><br><br><font size="1">writer acquired&nbsp;&nbsp;&nbsp; 0 &nbsp;&nbsp; at&nbsp;&nbsp; 88110592&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>
<br>writer released&nbsp;&nbsp;&nbsp; 0 &nbsp;&nbsp; at&nbsp;&nbsp; 88112592<br><br></font><font size="1"><font style="BACKGROUND-COLOR: #ffff00">writer acquired&nbsp;&nbsp;&nbsp; 1&nbsp; &nbsp; at&nbsp;&nbsp; 88112592<br><br>writer released&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp; at&nbsp;&nbsp; 88114592<br></font><br>writer acquired&nbsp;&nbsp;&nbsp; 2&nbsp; &nbsp; at&nbsp;&nbsp; 88114592<br>
<br>writer released&nbsp;&nbsp;&nbsp; 2&nbsp; &nbsp; at&nbsp;&nbsp; 88116592<br><br>writer acquired&nbsp;&nbsp;&nbsp; 3 &nbsp;&nbsp; at&nbsp;&nbsp; 88116592<br><br>writer released &nbsp;&nbsp;&nbsp;3 &nbsp;&nbsp; at&nbsp;&nbsp; 88118592<br><br>&nbsp;<br><br>Reader<br><br></font><font size="1"><font style="BACKGROUND-COLOR: #33ff33">Reader acquired&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp; at&nbsp;&nbsp; 88112872<br>
<br>Reader released&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp; at&nbsp;&nbsp; 88114872<br></font><br>Reader acquired&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp; at&nbsp;&nbsp; 88114872<br><br>Reader released&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp; at&nbsp;&nbsp; 88116872<br><br>Reader acquired&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp;&nbsp; at&nbsp;&nbsp; 88116872<span></span> <br><br>Reader released&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp;&nbsp; at&nbsp;&nbsp; 88118872<br>
<br>Reader acquired&nbsp;&nbsp; 3&nbsp;&nbsp;&nbsp;&nbsp; at&nbsp;&nbsp; 88118872<br><br>&nbsp;<br><br>&nbsp;<br><br></font></span><font size="1">OUTPUT is like this (WITH ACE_Process_Mutex):<br><br>&nbsp;<br><br>Writer&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; count&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TimeStamp(in millisec)</font><span><br>
<br><font size="1">&nbsp;<br><br></font><font size="1"><font style="BACKGROUND-COLOR: #ffff00">writer acquired&nbsp;&nbsp;&nbsp; 0 &nbsp;&nbsp; at&nbsp;&nbsp;&nbsp; 88560984<br><br>writer released&nbsp;&nbsp;&nbsp; 0 &nbsp;&nbsp; at&nbsp;&nbsp; 88562984<br><br></font>writer acquired&nbsp;&nbsp;&nbsp; 1&nbsp; &nbsp; at&nbsp;&nbsp; 88562984<br>
<br>writer released&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp; at&nbsp;&nbsp; 88564984<br><br>writer acquired&nbsp;&nbsp;&nbsp; 2&nbsp; &nbsp; at&nbsp;&nbsp; 88566984<br><br>writer released&nbsp;&nbsp;&nbsp; 2&nbsp; &nbsp; at &nbsp;&nbsp;88568984<br><br>writer acquired&nbsp;&nbsp;&nbsp; 3 &nbsp;&nbsp; at&nbsp;&nbsp; 88570984<br><br>writer released&nbsp;&nbsp;&nbsp; 3 &nbsp;&nbsp; at&nbsp;&nbsp; 88572984<br>
<br>&nbsp;<br><br>Reader<br><br></font><font size="1"><font style="BACKGROUND-COLOR: #33ff33">Reader acquired&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp; at&nbsp;&nbsp; 88564984<br><br>Reader released&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp; at&nbsp;&nbsp; 88566984<br></font><br>Reader acquired&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp; at&nbsp;&nbsp; 88568984<br>
<br>Reader released&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp; at&nbsp;&nbsp; 88570984<br><br>Reader acquired&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp;&nbsp; at&nbsp;&nbsp; 88572984<br><br>Reader released&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp;&nbsp; at&nbsp;&nbsp; 88574984<br><br>Reader acquired&nbsp;&nbsp; 3&nbsp;&nbsp;&nbsp;&nbsp; at&nbsp;&nbsp; 88576984<br><br>Reader released&nbsp;&nbsp; 3&nbsp;&nbsp;&nbsp;&nbsp; at&nbsp;&nbsp; 88578984<br>
<br>&nbsp;<br><br></font></span><font size="1">Thanks<br></font><span><br><font size="1">Kul</font></span><span><br></span></div><br><br>
<div><span class="gmail_quote"><font size="1">On 3/4/08, <b class="gmail_sendername">Douglas C. Schmidt</b> &lt;<a href="mailto:schmidt@dre.vanderbilt.edu">schmidt@dre.vanderbilt.edu</a>&gt; wrote:</font></span>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid"><font size="1">Hi,<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Thanks for using the PRF.<br><br>&gt;ACE VERSION: 5.5.8<br>&gt;<br>&gt;HOST MACHINE and OPERATING SYSTEM:<br>
&gt;Windows XP Professional and Enterprise Linux 5.0<br>&gt;<br>&gt;Version 2002<br>&gt;<br>&gt;TARGET MACHINE and OPERATING SYSTEM, if different from HOST:NO<br>&gt;<br>&gt;COMPILER NAME AND VERSION (AND PATCHLEVEL):<br>
&gt;<br>&gt;Visual studio 2005<br>&gt;<br>&gt;THE $ACE_ROOT/ace/config.h FILE<br>&gt;<br>&gt;#include &quot;ace/config-win32.h&quot;&nbsp;&nbsp; for windows<br>&gt;<br>&gt;#include &quot;ace/config-linux.h&quot;&nbsp;&nbsp; for linux<br>&gt;<br>
&gt;DOES THE PROBLEM AFFECT:<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;COMPILATION?&nbsp;&nbsp; NO<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LINKING?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NO<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EXECUTION?&nbsp;&nbsp;&nbsp;&nbsp; YES<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OTHER<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;SYNOPSIS:<br>&gt;<br>
&gt;Use of ACE_RW_Process_Mutex.I developed a very simple program which needs to<br>&gt;be extended for Multiple readers and single writer ( shared memory concept<br>&gt;using a Hash Map with allocator)<br>&gt;<br>&gt;Even a single Reader and single writer are not getting<br>
&gt;syncronized.Pleaseprovide with a sample program of<br>&gt;ACE_RW_Process_Mutex.<br>&gt;<br>&gt;<br>&gt;<br>&gt;DESCRIPTION:<br>&gt;<br>&gt;After having a look into ACE_ROOT/examples/Threads ,I implemented the<br>&gt;following code using ACE_RW_Process_Mutex. and run in both Windows and<br>
&gt;linux5.0. But in both the cases the synchronization is not happening .<br>&gt;<br>&gt;Yes I have tried with ACE_Process_Mutex.Its working Fine in Windows<br>&gt;and linux.I m attaching the code of ACE_Process_Mutex along with its<br>
&gt;output&nbsp;&nbsp;and also of ACE_RW_Process_Mutex along with its output<br>&gt;<br>&gt;The Code is written as below&nbsp;&nbsp;(WITH ACE_RW_Process_Mutex)<br>&gt;<br>&gt;int ACE_TMAIN (int argc, ACE_TCHAR *argv[])<br>&gt;<br>&gt;{<br>&gt;<br>
&gt;int count =0;<br>&gt;<br>&gt;float ltime=0;<br><br>BTW, I recommend you use<br><br>&nbsp;&nbsp;&nbsp;&nbsp;ACE_RW_Process_Mutex m_RWMutex;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;if (m_RWMutex.open (ACE_TEXT(&quot;MyMutex&quot;)) == -1)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_DEBUG ((LM_ERROR, &quot;%p\n&quot;, &quot;RWMutex::open&quot;));<br>
<br>to make sure that the open isn&#39;t failing.<br><br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;ACE_RW_Process_Mutex m_RWMutex(ACE_TEXT(&quot;MyMutex&quot;));<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;if (agrc == 1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// For server which is writing<br>&gt;<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while (1)<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (m_RWMutex.acquire_write() == 0)<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ltime = ::GetTickCount();<br>&gt;<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ACE_OS::printf(&quot;Writer acquired...%d&nbsp;&nbsp;at:<br>&gt;%f\n&quot;,count++,ltime);<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ACE_OS::sleep(2);<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ltime = ::GetTickCount();<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ACE_OS::printf(&quot;Writer releasing... ...%d&nbsp;&nbsp;at:<br>
&gt;%f\n&quot;,count++,ltime);<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_RWMutex.release();<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//For Client which is reading<br>
&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while (1)<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (m_RWMutex.acquire_read() == 0)<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ltime = ::GetTickCount();<br>
&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_OS::printf(&quot;Reader acquired... ...%d&nbsp;&nbsp;at:<br>&gt;%f\n&quot;,count++,ltime);<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ACE_OS::sleep(2);<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ltime = ::GetTickCount();<br>
&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ACE_OS::printf(&quot;Reader releasing...%d&nbsp;&nbsp;at:<br>&gt;%f\n&quot;,count++,ltime);<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_RWMutex.release();<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&gt;<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;return 0;<br>&gt;<br>&gt;}<br><br>I can&#39;t figure out what the difference is between the two outputs with<br>a cursory look.&nbsp;&nbsp;Can you please explain why you think the<br>RW_Process_Mutex isn&#39;t working whereas the Process_Mutex is working?<br>
<br>Thanks,<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Doug<br><br>&gt;output is like this(WITH ACE_RW_Process_Mutex):<br>&gt;<br>&gt;Writer<br>&gt;<br>&gt;writer acquired&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;&nbsp; 88110592<br>&gt;<br>&gt;writer released&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;&nbsp; 88112592<br>
&gt;<br>&gt;writer acquired&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;&nbsp; 88112592<br>&gt;<br>&gt;writer released&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp; at&nbsp;&nbsp; 88114592<br>&gt;<br>&gt;writer acquired&nbsp;&nbsp;&nbsp;&nbsp;2&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;&nbsp; 88114592<br>&gt;<br>&gt;writer released&nbsp;&nbsp;&nbsp;&nbsp;2&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;&nbsp; 88116592<br>&gt;<br>&gt;writer acquired&nbsp;&nbsp;&nbsp;&nbsp;3&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;&nbsp; 88116592<br>
&gt;<br>&gt;writer released&nbsp;&nbsp;&nbsp;&nbsp;3&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;&nbsp; 88118592<br>&gt;<br>&gt;<br>&gt;<br>&gt;Reader<br>&gt;<br>&gt;Reader acquired&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp; at&nbsp;&nbsp; 88112872<br>&gt;<br>&gt;Reader released&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp; at&nbsp;&nbsp; 88114872<br>&gt;<br>&gt;Reader acquired&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp; at&nbsp;&nbsp; 88114872<br>
&gt;<br>&gt;Reader released&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp; at&nbsp;&nbsp; 88116872<br>&gt;<br>&gt;Reader acquired&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp;&nbsp; at&nbsp;&nbsp; 88116872<br>&gt;<br>&gt;Reader released&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp;&nbsp; at&nbsp;&nbsp; 88118872<br>&gt;<br>&gt;Reader acquired&nbsp;&nbsp; 3&nbsp;&nbsp;&nbsp;&nbsp; at&nbsp;&nbsp; 88118872<br>&gt;<br>&gt;<br>
&gt;<br>&gt;<br>&gt;<br>&gt;output is like this (WITH ACE_Process_Mutex):<br>&gt;<br>&gt;Writer<br>&gt;<br>&gt;writer acquired&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;&nbsp;&nbsp;&nbsp;88560984<br>&gt;<br>&gt;writer released&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;&nbsp; 88562984<br>&gt;<br>&gt;writer acquired&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;&nbsp; 88562984<br>
&gt;<br>&gt;writer released&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp; at&nbsp;&nbsp; 88564984<br>&gt;<br>&gt;writer acquired&nbsp;&nbsp;&nbsp;&nbsp;2&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;&nbsp; 88566984<br>&gt;<br>&gt;writer released&nbsp;&nbsp;&nbsp;&nbsp;2&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;&nbsp; 88568984<br>&gt;<br>&gt;writer acquired&nbsp;&nbsp;&nbsp;&nbsp;3&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;&nbsp; 88570984<br>&gt;<br>&gt;writer released&nbsp;&nbsp;&nbsp;&nbsp;3&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;&nbsp; 88572984<br>
&gt;<br>&gt;<br>&gt;<br>&gt;Reader<br>&gt;<br>&gt;Reader acquired&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp; at&nbsp;&nbsp; 88564984<br>&gt;<br>&gt;Reader released&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp; at&nbsp;&nbsp; 88566984<br>&gt;<br>&gt;Reader acquired&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp; at&nbsp;&nbsp; 88568984<br>&gt;<br>&gt;Reader released&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp; at&nbsp;&nbsp; 88570984<br>
&gt;<br>&gt;Reader acquired&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp;&nbsp; at&nbsp;&nbsp; 88572984<br>&gt;<br>&gt;Reader released&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp;&nbsp; at&nbsp;&nbsp; 88574984<br>&gt;<br>&gt;Reader acquired&nbsp;&nbsp; 3&nbsp;&nbsp;&nbsp;&nbsp; at&nbsp;&nbsp; 88576984<br>&gt;<br>&gt;Reader released&nbsp;&nbsp; 3&nbsp;&nbsp;&nbsp;&nbsp; at&nbsp;&nbsp; 88578984<br>&gt;<br>&gt;<br>
&gt;<br>&gt;<br>&gt;On 3/3/08, Matthew Gillen &lt;<a href="mailto:mgillen@bbn.com">mgillen@bbn.com</a>&gt; wrote:<br>&gt;&gt;<br>&gt;&gt; kul gupta wrote:<br>&gt;&gt; &gt; After having a look into ACE_ROOT/examples/Threads ,I implemented the<br>
&gt;&gt; &gt; following code using ACE_RW_Process_Mutex. and run in both Windows and<br>&gt;&gt; &gt; linux5.0. But in both the cases the synchronization is not happening .<br>&gt;&gt;<br>&gt;&gt; It would help if were more specific about what actually /is/<br>
&gt;&gt; happening.&nbsp;&nbsp;Do<br>&gt;&gt; you see the output messages in the wrong order?&nbsp;&nbsp;Do you never see some<br>&gt;&gt; output messages?<br>&gt;&gt;<br>&gt;&gt; Matt<br>&gt;&gt;<br>&gt;<br>&gt;------=_Part_37_22204605.1204610511961<br>
&gt;Content-Type: text/html; charset=ISO-8859-1<br>&gt;Content-Transfer-Encoding: 7bit<br>&gt;Content-Disposition: inline<br>&gt;<br>&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Arial&quot;&gt;Subject: &lt;/span&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;ACE_RW_Process_Mutex in single writer and multiple readers&lt;/span&gt;&lt;span style=&quot;FONT-SIZE: 9.5pt; FONT-FAMILY: Arial&quot;&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;<br>
&gt;&lt;pre&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;&lt;span style=&quot;FONT-FAMILY: Arial&quot;&gt;ACE VERSION&lt;/span&gt;: 5.5.8&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;<br>&gt;&lt;div&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;&lt;span style=&quot;FONT-FAMILY: Arial&quot;&gt;HOST MACHINE and OPERATING SYSTEM&lt;/span&gt;:&lt;/font&gt;&lt;/font&gt;&lt;/div&gt;<br>
&gt;&lt;div&gt;&lt;font face=&quot;courier new,monospace&quot; size=&quot;1&quot;&gt;Windows XP Professional and Enterprise Linux 5.0&lt;/font&gt;&lt;/div&gt;&lt;pre&gt;&lt;font face=&quot;courier new,monospace&quot; size=&quot;1&quot;&gt;Version 2002&lt;/font&gt;&lt;/pre&gt;&lt;pre&gt;&lt;font face=&quot;courier new,monospace&quot; size=&quot;1&quot;&gt;TARGET MACHINE and OPERATING SYSTEM, if different from HOST:NO&lt;/font&gt;&lt;/pre&gt;<br>
&gt;&lt;pre&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;&lt;span style=&quot;FONT-FAMILY: Arial&quot;&gt;COMPILER NAME AND VERSION&lt;/span&gt; (AND PATCHLEVEL):&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre&gt;&lt;font face=&quot;courier new,monospace&quot; size=&quot;1&quot;&gt;Visual studio 2005&lt;/font&gt;&lt;/pre&gt;<br>
&gt;<br>&gt;&lt;p style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Arial&quot;&gt;THE $ACE_ROOT/ace/config.h FILE &lt;/span&gt;&lt;span style=&quot;FONT-SIZE: 9.5pt; FONT-FAMILY: Arial&quot;&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;<br>
&gt;<br>&gt;&lt;p style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;#include &amp;quot;ace/config-win32.h&amp;quot;&amp;nbsp;&amp;nbsp; for windows&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;<br>&gt;&lt;p style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;#include &amp;quot;ace/config-linux.h&amp;quot;&amp;nbsp;&amp;nbsp; for linux&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;&lt;pre&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;&lt;span style=&quot;FONT-FAMILY: Arial&quot;&gt;DOES THE PROBLEM AFFECT&lt;/span&gt;:&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre&gt;&lt;font face=&quot;courier new,monospace&quot; size=&quot;1&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; COMPILATION? &amp;nbsp; NO&lt;/font&gt;&lt;/pre&gt;<br>
&gt;&lt;pre&gt;&lt;font face=&quot;courier new,monospace&quot; size=&quot;1&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LINKING?&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NO&lt;/font&gt;&lt;/pre&gt;&lt;pre&gt;&lt;font face=&quot;courier new,monospace&quot; size=&quot;1&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EXECUTION?&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; YES&lt;/font&gt;&lt;/pre&gt;&lt;pre&gt;&lt;font face=&quot;courier new,monospace&quot; size=&quot;1&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OTHER &amp;nbsp;&lt;/font&gt;&lt;/pre&gt;<br>
&gt;&lt;pre&gt;&lt;font face=&quot;courier new,monospace&quot; size=&quot;1&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;FONT-FAMILY: Arial&quot;&gt;SYNOPSIS&lt;/span&gt;:&lt;/font&gt;&lt;/pre&gt;<br>&gt;&lt;p style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;Use of ACE_RW_Process_Mutex.I developed a very simple program which needs to be extended for Multiple readers and single writer ( shared memory concept using a Hash Map with allocator)&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;<br>&gt;&lt;p style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;Even a single Reader and single writer are not getting syncronized.Please provide with a sample program of ACE_RW_Process_Mutex.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;<br>&gt;&lt;p style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Arial&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;FONT-SIZE: 9.5pt; FONT-FAMILY: Arial&quot;&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;pre&gt;<br>
&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;&lt;span style=&quot;FONT-FAMILY: Arial&quot;&gt;DESCRIPTION&lt;/span&gt;:&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre&gt;&lt;font face=&quot;courier new,monospace&quot; size=&quot;1&quot;&gt;After having a look into ACE_ROOT/examples/Threads ,I implemented the following code using ACE_RW_Process_Mutex. and run in both Windows and linux5.0. But in both the cases the synchronization is not happening .&lt;/font&gt;&lt;/pre&gt;<br>
&gt;&lt;pre&gt;&lt;font face=&quot;courier new,monospace&quot; size=&quot;1&quot;&gt;Yes I have tried with ACE_Process_Mutex.Its working Fine in Windows and linux.I m attaching the code of ACE_Process_Mutex along with its output&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/span&gt;and also of ACE_RW_Process_Mutex along with its output&lt;/font&gt;&lt;/pre&gt;<br>
&gt;&lt;pre&gt;&lt;font face=&quot;courier new,monospace&quot; size=&quot;1&quot;&gt;The Code is written as below&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/span&gt;(WITH ACE_RW_Process_Mutex)&lt;/font&gt;&lt;/pre&gt;&lt;pre&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;int ACE_TMAIN (int argc, ACE_TCHAR *argv[])&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;<br>
&gt;<br>&gt;&lt;p style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;{&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;&lt;p style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;int count =0;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;&lt;p style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;float ltime=0;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;&lt;p style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ACE_RW_Process_Mutex m_RWMutex(ACE_TEXT(&amp;quot;MyMutex&amp;quot;));&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;<br>&gt;&lt;p style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (agrc == 1)&lt;span style=&quot;mso-tab-count: 3&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;// For server which is writing&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;<br>&gt;&lt;p style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;&lt;p style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (1)&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;&lt;p style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;&lt;p style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (m_RWMutex.acquire_write() == 0)&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;&lt;p style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;&lt;p style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;&lt;span style=&quot;mso-tab-count: 2&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;ltime = ::GetTickCount();&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;<br>&gt;&lt;p style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ACE_OS::printf(&amp;quot;Writer acquired...%d&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/span&gt;at: %f\n&amp;quot;,count++,ltime);&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;<br>&gt;&lt;p style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ACE_OS::sleep(2);&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;&lt;p style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;&lt;span style=&quot;mso-tab-count: 2&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;ltime = ::GetTickCount();&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;<br>&gt;&lt;p style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ACE_OS::printf(&amp;quot;Writer releasing... ...%d&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/span&gt;at: %f\n&amp;quot;,count++,ltime);&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;<br>&gt;&lt;p style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_RWMutex.release();&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;&lt;p style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;&lt;p style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;&lt;p style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;&lt;p style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;span style=&quot;mso-tab-count: 4&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;//For Client which is reading &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;<br>&gt;&lt;p style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;&lt;p style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (1)&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;&lt;p style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;&lt;p style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (m_RWMutex.acquire_read() == 0)&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;&lt;p style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;&lt;p style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ltime = ::GetTickCount(); &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;&lt;p style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;&lt;span style=&quot;mso-tab-count: 2&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;ACE_OS::printf(&amp;quot;Reader acquired... ...%d&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/span&gt;at: %f\n&amp;quot;,count++,ltime);&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;<br>&gt;&lt;p style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ACE_OS::sleep(2);&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;&lt;p style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;&lt;span style=&quot;mso-tab-count: 2&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;ltime = ::GetTickCount();&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;<br>&gt;&lt;p style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ACE_OS::printf(&amp;quot;Reader releasing...%d&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/span&gt;at: %f\n&amp;quot;,count++,ltime);&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;<br>&gt;&lt;p style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_RWMutex.release();&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;&lt;p style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;&lt;p style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;&lt;p style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;&lt;p style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 0;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;&lt;p style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;}&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre&gt;&lt;font face=&quot;courier new,monospace&quot; size=&quot;1&quot;&gt;output is like this(WITH ACE_RW_Process_Mutex):&lt;/font&gt;&lt;/pre&gt;<br>
&gt;&lt;pre&gt;&lt;font face=&quot;courier new,monospace&quot; size=&quot;1&quot;&gt;Writer &lt;/font&gt;&lt;/pre&gt;<br>&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;writer acquired&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0 &lt;span style=&quot;mso-tab-count: 1&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;at&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;88110592&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;<br>&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;writer released&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0 &lt;span style=&quot;mso-tab-count: 1&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;at&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;88112592&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;<br>&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;writer acquired&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;1&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;mso-tab-count: 1&quot;&gt;&amp;nbsp; &lt;/span&gt;at&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;88112592&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;<br>&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;writer released&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;1&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;mso-tab-count: 1&quot;&gt;&lt;/span&gt;at&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;88114592&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;<br>&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;writer acquired&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;2&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;mso-tab-count: 1&quot;&gt;&amp;nbsp; &lt;/span&gt;at&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;88114592&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;<br>&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;writer released&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;2&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;mso-tab-count: 1&quot;&gt;&amp;nbsp; &lt;/span&gt;at&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;88116592&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;<br>&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;writer acquired&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;3 &lt;span style=&quot;mso-tab-count: 1&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;at&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;88116592&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;<br>&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;writer released &lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;3 &lt;span style=&quot;mso-tab-count: 1&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;at&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;88118592&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;<br>&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;font face=&quot;courier new,monospace&quot; size=&quot;1&quot;&gt;&amp;nbsp;&lt;/font&gt;&lt;/p&gt;<br>&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;font face=&quot;courier new,monospace&quot; size=&quot;1&quot;&gt;Reader&lt;/font&gt;&lt;/p&gt;<br>
&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;Reader acquired&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0&lt;span style=&quot;mso-tab-count: 1&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;at&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;88112872&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;<br>&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;Reader released&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0&lt;span style=&quot;mso-tab-count: 1&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;at&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;88114872&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;<br>&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;Reader acquired&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;1&lt;span style=&quot;mso-tab-count: 1&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;at&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;88114872&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;<br>&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;Reader released&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;1&lt;span style=&quot;mso-tab-count: 1&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;at&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;88116872&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;<br>&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;Reader acquired&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;2&lt;span style=&quot;mso-tab-count: 1&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;at&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;88116872&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;<br>&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;Reader released&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;2&lt;span style=&quot;mso-tab-count: 1&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;at&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;88118872&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;<br>&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;Reader acquired&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;3&lt;span style=&quot;mso-tab-count: 1&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;at&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;88118872&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;<br>&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;font face=&quot;courier new,monospace&quot; size=&quot;1&quot;&gt;&amp;nbsp;&lt;/font&gt;&lt;/p&gt;<br>&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;font face=&quot;courier new,monospace&quot; size=&quot;1&quot;&gt;&amp;nbsp;&lt;/font&gt;&lt;/p&gt;<br>
&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;font face=&quot;courier new,monospace&quot; size=&quot;1&quot;&gt;output is like this (WITH ACE_Process_Mutex):&lt;/font&gt;&lt;/p&gt;<br>
&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;font face=&quot;courier new,monospace&quot; size=&quot;1&quot;&gt;Writer &lt;/font&gt;&lt;/p&gt;<br>&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;writer acquired&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0 &lt;span style=&quot;mso-tab-count: 1&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;at&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;88560984&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;<br>&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;writer released&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0 &lt;span style=&quot;mso-tab-count: 1&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;at&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;88562984&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;<br>&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;writer acquired&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;1&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;mso-tab-count: 1&quot;&gt;&amp;nbsp; &lt;/span&gt;at&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;88562984&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;<br>&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;writer released&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;1&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;mso-tab-count: 1&quot;&gt;&lt;/span&gt;at&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;88564984&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;<br>&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;writer acquired&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;2&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;mso-tab-count: 1&quot;&gt;&amp;nbsp; &lt;/span&gt;at&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;88566984&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;<br>&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;writer released&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;2&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;mso-tab-count: 1&quot;&gt;&amp;nbsp; &lt;/span&gt;at &lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;88568984&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;<br>&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;writer acquired&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;3 &lt;span style=&quot;mso-tab-count: 1&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;at&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;88570984&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;<br>&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;writer released&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;3 &lt;span style=&quot;mso-tab-count: 1&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;at&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;88572984&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;<br>&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;font face=&quot;courier new,monospace&quot; size=&quot;1&quot;&gt;&amp;nbsp;&lt;/font&gt;&lt;/p&gt;<br>&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;font face=&quot;courier new,monospace&quot; size=&quot;1&quot;&gt;Reader&lt;/font&gt;&lt;/p&gt;<br>
&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;Reader acquired&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0&lt;span style=&quot;mso-tab-count: 1&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;at&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;88564984&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;<br>&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;Reader released&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0&lt;span style=&quot;mso-tab-count: 1&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;at&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;88566984&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;<br>&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;Reader acquired&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;1&lt;span style=&quot;mso-tab-count: 1&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;at&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;88568984&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;<br>&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;Reader released&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;1&lt;span style=&quot;mso-tab-count: 1&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;at&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;88570984&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;<br>&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;Reader acquired&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;2&lt;span style=&quot;mso-tab-count: 1&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;at&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;88572984&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;<br>&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;Reader released&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;2&lt;span style=&quot;mso-tab-count: 1&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;at&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;88574984&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;<br>&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot;&gt;&lt;font size=&quot;1&quot;&gt;Reader acquired&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;3&lt;span style=&quot;mso-tab-count: 1&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;at&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;88576984&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;<br>&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: &amp;#39;Courier New&amp;#39;&quot;&gt;&lt;font face=&quot;courier new,monospace&quot; size=&quot;1&quot;&gt;Reader released&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;3&lt;span style=&quot;mso-tab-count: 1&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;at&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;88578984&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;<br>
&gt;<br>&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;font face=&quot;courier new,monospace&quot; size=&quot;1&quot;&gt;&amp;nbsp;&lt;/font&gt;&lt;/p&gt;&lt;br&gt;&lt;br&gt;<br>&gt;&lt;div&gt;&lt;span class=&quot;gmail_quote&quot;&gt;&lt;font face=&quot;courier new,monospace&quot; size=&quot;1&quot;&gt;On 3/3/08, &lt;b class=&quot;gmail_sendername&quot;&gt;Matthew Gillen&lt;/b&gt; &amp;lt;&lt;a href=&quot;mailto:<a href="mailto:mgillen@bbn.com">mgillen@bbn.com</a>&quot;&gt;<a href="mailto:mgillen@bbn.com">mgillen@bbn.com</a>&lt;/a&gt;&amp;gt; wrote:&lt;/font&gt;&lt;/span&gt;<br>
&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid&quot;&gt;&lt;font face=&quot;courier new,monospace&quot; size=&quot;1&quot;&gt;kul gupta wrote:&lt;br&gt;&amp;gt; After having a look into ACE_ROOT/examples/Threads ,I implemented the&lt;br&gt;<br>
&gt;&amp;gt; following code using ACE_RW_Process_Mutex. and run in both Windows and&lt;br&gt;&amp;gt; linux5.0. But in both the cases the synchronization is not happening .&lt;br&gt;&lt;br&gt;It would help if were more specific about what actually /is/ happening.&amp;nbsp;&amp;nbsp;Do&lt;br&gt;<br>
&gt;you see the output messages in the wrong order?&amp;nbsp;&amp;nbsp;Do you never see some&lt;br&gt;output messages?&lt;br&gt;&lt;br&gt;Matt&lt;br&gt;&lt;/font&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;<br>&gt;<br>&gt;------=_Part_37_22204605.1204610511961--<br>
&gt;<br><br><br>--<br>Dr. Douglas C. Schmidt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Professor and Associate Chair<br>Electrical Engineering and Computer Science&nbsp;&nbsp;TEL: (615) 343-8197<br>Vanderbilt University&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WEB: <a href="http://www.dre.vanderbilt.edu/~schmidt">www.dre.vanderbilt.edu/~schmidt</a><br>
Nashville, TN 37203&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NET: <a href="mailto:d.schmidt@vanderbilt.edu">d.schmidt@vanderbilt.edu</a><br></font></blockquote></div><br>