[Ace-users] [ace-users] ACE_RW_Process_Mutex

Douglas C. Schmidt schmidt at dre.vanderbilt.edu
Tue Mar 4 06:20:27 CST 2008


Hi,

        Thanks for using the PRF.

>ACE VERSION: 5.5.8
>
>HOST MACHINE and OPERATING SYSTEM:
>Windows XP Professional and Enterprise Linux 5.0
>
>Version 2002
>
>TARGET MACHINE and OPERATING SYSTEM, if different from HOST:NO
>
>COMPILER NAME AND VERSION (AND PATCHLEVEL):
>
>Visual studio 2005
>
>THE $ACE_ROOT/ace/config.h FILE
>
>#include "ace/config-win32.h"   for windows
>
>#include "ace/config-linux.h"   for linux
>
>DOES THE PROBLEM AFFECT:
>
>        COMPILATION?   NO
>
>        LINKING?       NO
>
>        EXECUTION?     YES
>
>        OTHER
>
>    SYNOPSIS:
>
>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)
>
>Even a single Reader and single writer are not getting
>syncronized.Pleaseprovide with a sample program of
>ACE_RW_Process_Mutex.
>
>
>
>DESCRIPTION:
>
>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 .
>
>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  and also of ACE_RW_Process_Mutex along with its output
>
>The Code is written as below  (WITH ACE_RW_Process_Mutex)
>
>int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
>
>{
>
>int count =0;
>
>float ltime=0;

BTW, I recommend you use

     ACE_RW_Process_Mutex m_RWMutex;
     
     if (m_RWMutex.open (ACE_TEXT("MyMutex")) == -1)
        ACE_DEBUG ((LM_ERROR, "%p\n", "RWMutex::open"));

to make sure that the open isn't failing.

>    ACE_RW_Process_Mutex m_RWMutex(ACE_TEXT("MyMutex"));
>
>    if (agrc == 1)                  // For server which is writing
>
>    {
>
>        while (1)
>
>        {
>
>            if (m_RWMutex.acquire_write() == 0)
>
>            {
>
>                ltime = ::GetTickCount();
>
>                ACE_OS::printf("Writer acquired...%d  at:
>%f\n",count++,ltime);
>
>                ACE_OS::sleep(2);
>
>                ltime = ::GetTickCount();
>
>                ACE_OS::printf("Writer releasing... ...%d  at:
>%f\n",count++,ltime);
>
>                m_RWMutex.release();
>
>            }
>
>        }
>
>    }
>
>    else                      //For Client which is reading
>
>    {
>
>        while (1)
>
>        {
>
>            if (m_RWMutex.acquire_read() == 0)
>
>            {
>
>               ltime = ::GetTickCount();
>
>               ACE_OS::printf("Reader acquired... ...%d  at:
>%f\n",count++,ltime);
>
>                ACE_OS::sleep(2);
>
>                ltime = ::GetTickCount();
>
>                ACE_OS::printf("Reader releasing...%d  at:
>%f\n",count++,ltime);
>
>                m_RWMutex.release();
>
>            }
>
>        }
>
>    }
>
>    return 0;
>
>}

I can't figure out what the difference is between the two outputs with
a cursory look.  Can you please explain why you think the
RW_Process_Mutex isn't working whereas the Process_Mutex is working?

Thanks,

        Doug

>output is like this(WITH ACE_RW_Process_Mutex):
>
>Writer
>
>writer acquired    0    at   88110592
>
>writer released    0    at   88112592
>
>writer acquired    1    at   88112592
>
>writer released    1   at   88114592
>
>writer acquired    2    at   88114592
>
>writer released    2    at   88116592
>
>writer acquired    3    at   88116592
>
>writer released    3    at   88118592
>
>
>
>Reader
>
>Reader acquired   0     at   88112872
>
>Reader released   0     at   88114872
>
>Reader acquired   1     at   88114872
>
>Reader released   1     at   88116872
>
>Reader acquired   2     at   88116872
>
>Reader released   2     at   88118872
>
>Reader acquired   3     at   88118872
>
>
>
>
>
>output is like this (WITH ACE_Process_Mutex):
>
>Writer
>
>writer acquired    0    at    88560984
>
>writer released    0    at   88562984
>
>writer acquired    1    at   88562984
>
>writer released    1   at   88564984
>
>writer acquired    2    at   88566984
>
>writer released    2    at   88568984
>
>writer acquired    3    at   88570984
>
>writer released    3    at   88572984
>
>
>
>Reader
>
>Reader acquired   0     at   88564984
>
>Reader released   0     at   88566984
>
>Reader acquired   1     at   88568984
>
>Reader released   1     at   88570984
>
>Reader acquired   2     at   88572984
>
>Reader released   2     at   88574984
>
>Reader acquired   3     at   88576984
>
>Reader released   3     at   88578984
>
>
>
>
>On 3/3/08, Matthew Gillen <mgillen at bbn.com> wrote:
>>
>> kul gupta wrote:
>> > 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 .
>>
>> It would help if were more specific about what actually /is/
>> happening.  Do
>> you see the output messages in the wrong order?  Do you never see some
>> output messages?
>>
>> Matt
>>
>
>------=_Part_37_22204605.1204610511961
>Content-Type: text/html; charset=ISO-8859-1
>Content-Transfer-Encoding: 7bit
>Content-Disposition: inline
>
><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font face="courier new,monospace"><font size="1"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Subject: </span><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;">ACE_RW_Process_Mutex in single writer and multiple readers</span><span style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial"></span></font></font></p>
><pre><font face="courier new,monospace"><font size="1"><span style="FONT-FAMILY: Arial">ACE VERSION</span>: 5.5.8</font></font></pre>
><div><font face="courier new,monospace"><font size="1"><span style="FONT-FAMILY: Arial">HOST MACHINE and OPERATING SYSTEM</span>:</font></font></div>
><div><font face="courier new,monospace" size="1">Windows XP Professional and Enterprise Linux 5.0</font></div><pre><font face="courier new,monospace" size="1">Version 2002</font></pre><pre><font face="courier new,monospace" size="1">TARGET MACHINE and OPERATING SYSTEM, if different from HOST:NO</font></pre>
><pre><font face="courier new,monospace"><font size="1"><span style="FONT-FAMILY: Arial">COMPILER NAME AND VERSION</span> (AND PATCHLEVEL):</font></font></pre><pre><font face="courier new,monospace" size="1">Visual studio 2005</font></pre>
>
><p style="MARGIN: 0in 0in 0pt"><font face="courier new,monospace"><font size="1"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">THE $ACE_ROOT/ace/config.h FILE </span><span style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial"></span></font></font></p>
>
><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">#include &quot;ace/config-win32.h&quot;&nbsp;&nbsp; for windows</font></font></span></p>
>
><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">#include &quot;ace/config-linux.h&quot;&nbsp;&nbsp; for linux</font></font></span></p>
><pre><font face="courier new,monospace"><font size="1"><span style="FONT-FAMILY: Arial">DOES THE PROBLEM AFFECT</span>:</font></font></pre><pre><font face="courier new,monospace" size="1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; COMPILATION? &nbsp; NO</font></pre>
><pre><font face="courier new,monospace" size="1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LINKING?&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; NO</font></pre><pre><font face="courier new,monospace" size="1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; EXECUTION?&nbsp;&nbsp;&nbsp;&nbsp; YES</font></pre><pre><font face="courier new,monospace" size="1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OTHER &nbsp;</font></pre>
><pre><font face="courier new,monospace" size="1">&nbsp;&nbsp;&nbsp; <span style="FONT-FAMILY: Arial">SYNOPSIS</span>:</font></pre>
><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">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)</font></font></span></p>
>
><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">Even a single Reader and single writer are not getting syncronized.Please provide with a sample program of ACE_RW_Process_Mutex.</font></font></span></p>
>
><p style="MARGIN: 0in 0in 0pt"><font face="courier new,monospace"><font size="1"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">&nbsp;</span><span style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial"></span></font></font></p><pre>
><font face="courier new,monospace"><font size="1"><span style="FONT-FAMILY: Arial">DESCRIPTION</span>:</font></font></pre><pre><font face="courier new,monospace" size="1">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 .</font></pre>
><pre><font face="courier new,monospace" size="1">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<span style="mso-spacerun: yes">&nbsp; </span>and also of ACE_RW_Process_Mutex along with its output</font></pre>
><pre><font face="courier new,monospace" size="1">The Code is written as below<span style="mso-spacerun: yes">&nbsp; </span>(WITH ACE_RW_Process_Mutex)</font></pre><pre><font face="courier new,monospace"><font size="1">int ACE_TMAIN (int argc, ACE_TCHAR *argv[])</font></font></pre>
>
><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">{</font></font></span></p>
><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">int count =0;</font></font></span></p>
><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">float ltime=0;</font></font></span></p>
><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">&nbsp;&nbsp;&nbsp; ACE_RW_Process_Mutex m_RWMutex(ACE_TEXT(&quot;MyMutex&quot;));</font></font></span></p>
>
><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">&nbsp;&nbsp;&nbsp; if (agrc == 1)<span style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>// For server which is writing</font></font></span></p>
>
><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">&nbsp;&nbsp;&nbsp; {</font></font></span></p>
><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while (1)</font></font></span></p>
><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</font></font></span></p>
><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (m_RWMutex.acquire_write() == 0)</font></font></span></p>
><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</font></font></span></p>
><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1"><span style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>ltime = ::GetTickCount();</font></font></span></p>
>
><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><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<span style="mso-spacerun: yes">&nbsp; </span>at: %f\n&quot;,count++,ltime);</font></font></span></p>
>
><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_OS::sleep(2);</font></font></span></p>
><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1"><span style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>ltime = ::GetTickCount();</font></font></span></p>
>
><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_OS::printf(&quot;Writer releasing... ...%d<span style="mso-spacerun: yes">&nbsp; </span>at: %f\n&quot;,count++,ltime);</font></font></span></p>
>
><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_RWMutex.release();</font></font></span></p>
><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font></font></span></p>
><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font></font></span></p>
><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">&nbsp;&nbsp;&nbsp; }</font></font></span></p>
><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">&nbsp;&nbsp;&nbsp; else<span style="mso-tab-count: 4">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>//For Client which is reading </font></font></span></p>
>
><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">&nbsp;&nbsp;&nbsp; {</font></font></span></p>
><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while (1)</font></font></span></p>
><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</font></font></span></p>
><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (m_RWMutex.acquire_read() == 0)</font></font></span></p>
><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</font></font></span></p>
><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ltime = ::GetTickCount(); </font></font></span></p>
><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1"><span style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="mso-spacerun: yes">&nbsp;&nbsp; </span>ACE_OS::printf(&quot;Reader acquired... ...%d<span style="mso-spacerun: yes">&nbsp; </span>at: %f\n&quot;,count++,ltime);</font></font></span></p>
>
><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_OS::sleep(2);</font></font></span></p>
><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1"><span style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>ltime = ::GetTickCount();</font></font></span></p>
>
><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_OS::printf(&quot;Reader releasing...%d<span style="mso-spacerun: yes">&nbsp; </span>at: %f\n&quot;,count++,ltime);</font></font></span></p>
>
><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_RWMutex.release();</font></font></span></p>
><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font></font></span></p>
><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font></font></span></p>
><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">&nbsp;&nbsp;&nbsp; }</font></font></span></p>
><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">&nbsp;&nbsp;&nbsp; return 0;</font></font></span></p>
><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">}</font></font></span></p><pre><font face="courier new,monospace" size="1">output is like this(WITH ACE_RW_Process_Mutex):</font></pre>
><pre><font face="courier new,monospace" size="1">Writer </font></pre>
><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">writer acquired<span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>0 <span style="mso-tab-count: 1">&nbsp;&nbsp; </span>at<span style="mso-spacerun: yes">&nbsp;&nbsp; </span>88110592</font></font></span></p>
>
><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">writer released<span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>0 <span style="mso-tab-count: 1">&nbsp;&nbsp; </span>at<span style="mso-spacerun: yes">&nbsp;&nbsp; </span>88112592</font></font></span></p>
>
><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">writer acquired<span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>1<span style="mso-spacerun: yes">&nbsp; </span><span style="mso-tab-count: 1">&nbsp; </span>at<span style="mso-spacerun: yes">&nbsp;&nbsp; </span>88112592</font></font></span></p>
>
><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">writer released<span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>1<span style="mso-spacerun: yes">&nbsp;&nbsp; </span><span style="mso-tab-count: 1"></span>at<span style="mso-spacerun: yes">&nbsp;&nbsp; </span>88114592</font></font></span></p>
>
><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">writer acquired<span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>2<span style="mso-spacerun: yes">&nbsp; </span><span style="mso-tab-count: 1">&nbsp; </span>at<span style="mso-spacerun: yes">&nbsp;&nbsp; </span>88114592</font></font></span></p>
>
><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">writer released<span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>2<span style="mso-spacerun: yes">&nbsp; </span><span style="mso-tab-count: 1">&nbsp; </span>at<span style="mso-spacerun: yes">&nbsp;&nbsp; </span>88116592</font></font></span></p>
>
><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">writer acquired<span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>3 <span style="mso-tab-count: 1">&nbsp;&nbsp; </span>at<span style="mso-spacerun: yes">&nbsp;&nbsp; </span>88116592</font></font></span></p>
>
><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">writer released <span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;</span>3 <span style="mso-tab-count: 1">&nbsp;&nbsp; </span>at<span style="mso-spacerun: yes">&nbsp;&nbsp; </span>88118592</font></font></span></p>
>
><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font face="courier new,monospace" size="1">&nbsp;</font></p>
><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font face="courier new,monospace" size="1">Reader</font></p>
><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">Reader acquired<span style="mso-spacerun: yes">&nbsp;&nbsp; </span>0<span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp; </span>at<span style="mso-spacerun: yes">&nbsp;&nbsp; </span>88112872</font></font></span></p>
>
><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">Reader released<span style="mso-spacerun: yes">&nbsp;&nbsp; </span>0<span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp; </span>at<span style="mso-spacerun: yes">&nbsp;&nbsp; </span>88114872</font></font></span></p>
>
><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">Reader acquired<span style="mso-spacerun: yes">&nbsp;&nbsp; </span>1<span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp; </span>at<span style="mso-spacerun: yes">&nbsp;&nbsp; </span>88114872</font></font></span></p>
>
><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">Reader released<span style="mso-spacerun: yes">&nbsp;&nbsp; </span>1<span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp; </span>at<span style="mso-spacerun: yes">&nbsp;&nbsp; </span>88116872</font></font></span></p>
>
><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">Reader acquired<span style="mso-spacerun: yes">&nbsp;&nbsp; </span>2<span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp; </span>at<span style="mso-spacerun: yes">&nbsp;&nbsp; </span>88116872</font></font></span></p>
>
><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">Reader released<span style="mso-spacerun: yes">&nbsp;&nbsp; </span>2<span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp; </span>at<span style="mso-spacerun: yes">&nbsp;&nbsp; </span>88118872</font></font></span></p>
>
><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">Reader acquired<span style="mso-spacerun: yes">&nbsp;&nbsp; </span>3<span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp; </span>at<span style="mso-spacerun: yes">&nbsp;&nbsp; </span>88118872</font></font></span></p>
>
><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font face="courier new,monospace" size="1">&nbsp;</font></p>
><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font face="courier new,monospace" size="1">&nbsp;</font></p>
><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font face="courier new,monospace" size="1">output is like this (WITH ACE_Process_Mutex):</font></p>
><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font face="courier new,monospace" size="1">Writer </font></p>
><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">writer acquired<span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>0 <span style="mso-tab-count: 1">&nbsp;&nbsp; </span>at<span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>88560984</font></font></span></p>
>
><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">writer released<span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>0 <span style="mso-tab-count: 1">&nbsp;&nbsp; </span>at<span style="mso-spacerun: yes">&nbsp;&nbsp; </span>88562984</font></font></span></p>
>
><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">writer acquired<span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>1<span style="mso-spacerun: yes">&nbsp; </span><span style="mso-tab-count: 1">&nbsp; </span>at<span style="mso-spacerun: yes">&nbsp;&nbsp; </span>88562984</font></font></span></p>
>
><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">writer released<span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>1<span style="mso-spacerun: yes">&nbsp;&nbsp; </span><span style="mso-tab-count: 1"></span>at<span style="mso-spacerun: yes">&nbsp;&nbsp; </span>88564984</font></font></span></p>
>
><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">writer acquired<span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>2<span style="mso-spacerun: yes">&nbsp; </span><span style="mso-tab-count: 1">&nbsp; </span>at<span style="mso-spacerun: yes">&nbsp;&nbsp; </span>88566984</font></font></span></p>
>
><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">writer released<span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>2<span style="mso-spacerun: yes">&nbsp; </span><span style="mso-tab-count: 1">&nbsp; </span>at <span style="mso-spacerun: yes">&nbsp;&nbsp;</span>88568984</font></font></span></p>
>
><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">writer acquired<span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>3 <span style="mso-tab-count: 1">&nbsp;&nbsp; </span>at<span style="mso-spacerun: yes">&nbsp;&nbsp; </span>88570984</font></font></span></p>
>
><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">writer released<span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>3 <span style="mso-tab-count: 1">&nbsp;&nbsp; </span>at<span style="mso-spacerun: yes">&nbsp;&nbsp; </span>88572984</font></font></span></p>
>
><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font face="courier new,monospace" size="1">&nbsp;</font></p>
><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font face="courier new,monospace" size="1">Reader</font></p>
><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">Reader acquired<span style="mso-spacerun: yes">&nbsp;&nbsp; </span>0<span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp; </span>at<span style="mso-spacerun: yes">&nbsp;&nbsp; </span>88564984</font></font></span></p>
>
><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">Reader released<span style="mso-spacerun: yes">&nbsp;&nbsp; </span>0<span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp; </span>at<span style="mso-spacerun: yes">&nbsp;&nbsp; </span>88566984</font></font></span></p>
>
><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">Reader acquired<span style="mso-spacerun: yes">&nbsp;&nbsp; </span>1<span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp; </span>at<span style="mso-spacerun: yes">&nbsp;&nbsp; </span>88568984</font></font></span></p>
>
><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">Reader released<span style="mso-spacerun: yes">&nbsp;&nbsp; </span>1<span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp; </span>at<span style="mso-spacerun: yes">&nbsp;&nbsp; </span>88570984</font></font></span></p>
>
><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">Reader acquired<span style="mso-spacerun: yes">&nbsp;&nbsp; </span>2<span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp; </span>at<span style="mso-spacerun: yes">&nbsp;&nbsp; </span>88572984</font></font></span></p>
>
><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">Reader released<span style="mso-spacerun: yes">&nbsp;&nbsp; </span>2<span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp; </span>at<span style="mso-spacerun: yes">&nbsp;&nbsp; </span>88574984</font></font></span></p>
>
><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace"><font size="1">Reader acquired<span style="mso-spacerun: yes">&nbsp;&nbsp; </span>3<span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp; </span>at<span style="mso-spacerun: yes">&nbsp;&nbsp; </span>88576984</font></font></span></p>
>
><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Courier New&#39;"><font face="courier new,monospace" size="1">Reader released<span style="mso-spacerun: yes">&nbsp;&nbsp; </span>3<span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp; </span>at<span style="mso-spacerun: yes">&nbsp;&nbsp; </span>88578984</font></span></p>
>
><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font face="courier new,monospace" size="1">&nbsp;</font></p><br><br>
><div><span class="gmail_quote"><font face="courier new,monospace" size="1">On 3/3/08, <b class="gmail_sendername">Matthew Gillen</b> &lt;<a href="mailto:mgillen at bbn.com">mgillen at bbn.com</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 face="courier new,monospace" size="1">kul gupta wrote:<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><br>It would help if were more specific about what actually /is/ happening.&nbsp;&nbsp;Do<br>
>you see the output messages in the wrong order?&nbsp;&nbsp;Do you never see some<br>output messages?<br><br>Matt<br></font></blockquote></div><br>
>
>------=_Part_37_22204605.1204610511961--
>


-- 
Dr. Douglas C. Schmidt                       Professor and Associate Chair
Electrical Engineering and Computer Science  TEL: (615) 343-8197
Vanderbilt University                        WEB: www.dre.vanderbilt.edu/~schmidt
Nashville, TN 37203                          NET: d.schmidt at vanderbilt.edu



More information about the Ace-users mailing list