[Ace-users] [ace-users] ACE_RW_Process_Mutex NOT WORKING
Douglas C. Schmidt
schmidt at dre.vanderbilt.edu
Mon Mar 10 09:25:49 CDT 2008
Hi,
Thanks for using the PRF.
>> ACE VERSION: 5.5.8
BTW, please upgrade to ACE+TAO+CIAO x.6.3 (i.e., ACE 5.6.3, TAO 1.6.3,
and CIAO 0.6.3), which you can download from
http://download.dre.vanderbilt.edu
under the heading: "Latest Beta Kit."
The DOC groups at Washington University, UC Irvine, and Vanderbilt
University only provide "best effort" support for non-sponsors for the
latest release, as described in
http://www.dre.vanderbilt.edu/~schmidt/DOC_ROOT/ACE/docs/ACE-bug-process.html
Thus, if you need more "predictable" help for earlier versions of
ACE+TAO, I recommend that you check out
http://www.dre.vanderbilt.edu/support.html
for a list of companies that will provide you with ACE+TAO commercial
support.
>> 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:
>> Adding a sleep(0) after the statement of releasing mutex ,single writer
>> and reader is in sync.
>>
>can u pl;ease let me know how to use the the ACE_RW_Process_mutex for
>multiple readers.??
>
>
>>
>> DESCRIPTION.
>> I am writing the code below.
>>
>
>I want to implement the same for multiple readers.can u please hint me about
>the same or if there is any sample of using ACE_RW_Process_mutex.
I don't think there are any examples of ACE_RW_Process_Mutex, so I
recommend you make a copy of
ACE_ROOT/tests/Process_Mutex_Test.cpp
and update it to use ACE_RW_Process_Mutex. Again, if you need more
help, I recommend that you check out
http://www.dre.vanderbilt.edu/support.html
for a list of companies that will provide you with ACE+TAO commercial
support.
Thanks,
Doug
> int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
>>
>>
>> {
>>
>> int count =0;
>>
>> float ltime=0;
>>
>> 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(); //number of millisec since the
>> system has started
>>
>> 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();
>>
>
> ACE_OS::sleep(0);
>
>
> }
>>
>> }
>>
>> }
>>
>> 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();
>>
>
>ACE_OS::sleep(0);
>
> }
>>
>> }
>>
>> }
>>
>> return 0;
>>
>> }
>>
>> OUTPUT is like this(WITH ACE_RW_Process_Mutex):
>>
>>
>>
>> Writer count TimeStamp(in millisec)
>>
>>
>> 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 count TimeStamp(in millisec)
>>
>>
>>
>> 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
>>
>>
>>
>> Thanks
>>
>> Kul
>>
>>
>> On 3/4/08, Douglas C. Schmidt <schmidt at dre.vanderbilt.edu> wrote:
>> >
>> > 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:
>> > 'Courier New'">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: 'Courier New'"><font face="courier new,monospace"><font
>> > size="1">#include "ace/config-win32.h" for
>> > windows</font></font></span></p>
>> > >
>> > ><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt;
>> > FONT-FAMILY: 'Courier New'"><font face="courier new,monospace"><font
>> > size="1">#include "ace/config-linux.h" 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"> COMPILATION?
>> > NO</font></pre>
>> > ><pre><font face="courier new,monospace"
>> > size="1"> LINKING?
>> > NO</font></pre><pre><font face="courier
>> > new,monospace" size="1">
>> > EXECUTION? YES</font></pre><pre><font face="courier
>> > new,monospace" size="1"> OTHER
>> > </font></pre>
>> > ><pre><font face="courier new,monospace" size="1">
>> > <span style="FONT-FAMILY: Arial">SYNOPSIS</span>:</font></pre>
>> > ><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt;
>> > FONT-FAMILY: 'Courier New'"><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: 'Courier New'"><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"> </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"> </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"> </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: 'Courier New'"><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: 'Courier New'"><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: 'Courier New'"><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: 'Courier New'"><font face="courier new,monospace"><font
>> > size="1"> ACE_RW_Process_Mutex
>> > m_RWMutex(ACE_TEXT("MyMutex"));</font></font></span></p>
>> > >
>> > ><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt;
>> > FONT-FAMILY: 'Courier New'"><font face="courier new,monospace"><font
>> > size="1"> if (agrc == 1)<span style="mso-tab-count:
>> > 3">
>> > </span>// For server which is writing</font></font></span></p>
>> > >
>> > ><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt;
>> > FONT-FAMILY: 'Courier New'"><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: 'Courier New'"><font face="courier new,monospace"><font
>> > size="1"> while
>> > (1)</font></font></span></p>
>> > ><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt;
>> > FONT-FAMILY: 'Courier New'"><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: 'Courier New'"><font face="courier new,monospace"><font
>> > size="1"> if
>> > (m_RWMutex.acquire_write() == 0)</font></font></span></p>
>> > ><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt;
>> > FONT-FAMILY: 'Courier New'"><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: 'Courier New'"><font face="courier new,monospace"><font
>> > size="1"><span style="mso-tab-count:
>> > 2">
>> > </span><span style="mso-spacerun: yes"> </span>ltime =
>> > ::GetTickCount();</font></font></span></p>
>> > >
>> > ><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt;
>> > FONT-FAMILY: 'Courier New'"><font face="courier new,monospace"><font
>> > size="1">
>> > ACE_OS::printf("Writer acquired...%d<span style="mso-spacerun:
>> > yes"> </span>at: %f\n",count++,ltime);</font></font></span></p>
>> > >
>> > ><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt;
>> > FONT-FAMILY: 'Courier New'"><font face="courier new,monospace"><font
>> > size="1">
>> > ACE_OS::sleep(2);</font></font></span></p>
>> > ><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt;
>> > FONT-FAMILY: 'Courier New'"><font face="courier new,monospace"><font
>> > size="1"><span style="mso-tab-count:
>> > 2">
>> > </span><span style="mso-spacerun: yes"> </span>ltime =
>> > ::GetTickCount();</font></font></span></p>
>> > >
>> > ><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt;
>> > FONT-FAMILY: 'Courier New'"><font face="courier new,monospace"><font
>> > size="1">
>> > ACE_OS::printf("Writer releasing... ...%d<span style="mso-spacerun:
>> > yes"> </span>at: %f\n",count++,ltime);</font></font></span></p>
>> > >
>> > ><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt;
>> > FONT-FAMILY: 'Courier New'"><font face="courier new,monospace"><font
>> > size="1">
>> > m_RWMutex.release();</font></font></span></p>
>> > ><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt;
>> > FONT-FAMILY: 'Courier New'"><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: 'Courier New'"><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: 'Courier New'"><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: 'Courier New'"><font face="courier new,monospace"><font
>> > size="1"> else<span style="mso-tab-count:
>> > 4">
>> > </span>//For Client which is reading </font></font></span></p>
>> > >
>> > ><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt;
>> > FONT-FAMILY: 'Courier New'"><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: 'Courier New'"><font face="courier new,monospace"><font
>> > size="1"> while
>> > (1)</font></font></span></p>
>> > ><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt;
>> > FONT-FAMILY: 'Courier New'"><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: 'Courier New'"><font face="courier new,monospace"><font
>> > size="1"> if
>> > (m_RWMutex.acquire_read() == 0)</font></font></span></p>
>> > ><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt;
>> > FONT-FAMILY: 'Courier New'"><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: 'Courier New'"><font face="courier new,monospace"><font
>> > size="1"> ltime
>> > = ::GetTickCount(); </font></font></span></p>
>> > ><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt;
>> > FONT-FAMILY: 'Courier New'"><font face="courier new,monospace"><font
>> > size="1"><span style="mso-tab-count:
>> > 2">
>> > </span><span style="mso-spacerun: yes">
>> > </span>ACE_OS::printf("Reader acquired... ...%d<span
>> > style="mso-spacerun: yes"> </span>at:
>> > %f\n",count++,ltime);</font></font></span></p>
>> > >
>> > ><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt;
>> > FONT-FAMILY: 'Courier New'"><font face="courier new,monospace"><font
>> > size="1">
>> > ACE_OS::sleep(2);</font></font></span></p>
>> > ><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt;
>> > FONT-FAMILY: 'Courier New'"><font face="courier new,monospace"><font
>> > size="1"><span style="mso-tab-count:
>> > 2">
>> > </span><span style="mso-spacerun: yes"> </span>ltime =
>> > ::GetTickCount();</font></font></span></p>
>> > >
>> > ><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt;
>> > FONT-FAMILY: 'Courier New'"><font face="courier new,monospace"><font
>> > size="1">
>> > ACE_OS::printf("Reader releasing...%d<span style="mso-spacerun:
>> > yes"> </span>at: %f\n",count++,ltime);</font></font></span></p>
>> > >
>> > ><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt;
>> > FONT-FAMILY: 'Courier New'"><font face="courier new,monospace"><font
>> > size="1">
>> > m_RWMutex.release();</font></font></span></p>
>> > ><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt;
>> > FONT-FAMILY: 'Courier New'"><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: 'Courier New'"><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: 'Courier New'"><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: 'Courier New'"><font face="courier new,monospace"><font
>> > size="1"> return 0;</font></font></span></p>
>> > ><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt;
>> > FONT-FAMILY: 'Courier New'"><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: 'Courier New'"><font
>> > face="courier new,monospace"><font size="1">writer acquired<span
>> > style="mso-spacerun: yes"> </span>0 <span
>> > style="mso-tab-count: 1"> </span>at<span style="mso-spacerun:
>> > yes"> </span>88110592</font></font></span></p>
>> > >
>> > ><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span
>> > style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><font
>> > face="courier new,monospace"><font size="1">writer released<span
>> > style="mso-spacerun: yes"> </span>0 <span
>> > style="mso-tab-count: 1"> </span>at<span style="mso-spacerun:
>> > yes"> </span>88112592</font></font></span></p>
>> > >
>> > ><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span
>> > style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><font
>> > face="courier new,monospace"><font size="1">writer acquired<span
>> > style="mso-spacerun: yes"> </span>1<span
>> > style="mso-spacerun: yes"> </span><span style="mso-tab-count:
>> > 1"> </span>at<span style="mso-spacerun: yes">
>> > </span>88112592</font></font></span></p>
>> > >
>> > ><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span
>> > style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><font
>> > face="courier new,monospace"><font size="1">writer released<span
>> > style="mso-spacerun: yes"> </span>1<span
>> > style="mso-spacerun: yes"> </span><span style="mso-tab-count:
>> > 1"></span>at<span style="mso-spacerun: yes">
>> > </span>88114592</font></font></span></p>
>> > >
>> > ><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span
>> > style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><font
>> > face="courier new,monospace"><font size="1">writer acquired<span
>> > style="mso-spacerun: yes"> </span>2<span
>> > style="mso-spacerun: yes"> </span><span style="mso-tab-count:
>> > 1"> </span>at<span style="mso-spacerun: yes">
>> > </span>88114592</font></font></span></p>
>> > >
>> > ><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span
>> > style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><font
>> > face="courier new,monospace"><font size="1">writer released<span
>> > style="mso-spacerun: yes"> </span>2<span
>> > style="mso-spacerun: yes"> </span><span style="mso-tab-count:
>> > 1"> </span>at<span style="mso-spacerun: yes">
>> > </span>88116592</font></font></span></p>
>> > >
>> > ><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span
>> > style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><font
>> > face="courier new,monospace"><font size="1">writer acquired<span
>> > style="mso-spacerun: yes"> </span>3 <span
>> > style="mso-tab-count: 1"> </span>at<span style="mso-spacerun:
>> > yes"> </span>88116592</font></font></span></p>
>> > >
>> > ><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span
>> > style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><font
>> > face="courier new,monospace"><font size="1">writer released <span
>> > style="mso-spacerun: yes"> </span>3 <span
>> > style="mso-tab-count: 1"> </span>at<span style="mso-spacerun:
>> > yes"> </span>88118592</font></font></span></p>
>> > >
>> > ><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font face="courier
>> > new,monospace" size="1"> </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: 'Courier New'"><font
>> > face="courier new,monospace"><font size="1">Reader acquired<span
>> > style="mso-spacerun: yes"> </span>0<span style="mso-tab-count:
>> > 1"> </span>at<span style="mso-spacerun:
>> > yes"> </span>88112872</font></font></span></p>
>> > >
>> > ><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span
>> > style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><font
>> > face="courier new,monospace"><font size="1">Reader released<span
>> > style="mso-spacerun: yes"> </span>0<span style="mso-tab-count:
>> > 1"> </span>at<span style="mso-spacerun:
>> > yes"> </span>88114872</font></font></span></p>
>> > >
>> > ><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span
>> > style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><font
>> > face="courier new,monospace"><font size="1">Reader acquired<span
>> > style="mso-spacerun: yes"> </span>1<span style="mso-tab-count:
>> > 1"> </span>at<span style="mso-spacerun:
>> > yes"> </span>88114872</font></font></span></p>
>> > >
>> > ><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span
>> > style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><font
>> > face="courier new,monospace"><font size="1">Reader released<span
>> > style="mso-spacerun: yes"> </span>1<span style="mso-tab-count:
>> > 1"> </span>at<span style="mso-spacerun:
>> > yes"> </span>88116872</font></font></span></p>
>> > >
>> > ><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span
>> > style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><font
>> > face="courier new,monospace"><font size="1">Reader acquired<span
>> > style="mso-spacerun: yes"> </span>2<span style="mso-tab-count:
>> > 1"> </span>at<span style="mso-spacerun:
>> > yes"> </span>88116872</font></font></span></p>
>> > >
>> > ><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span
>> > style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><font
>> > face="courier new,monospace"><font size="1">Reader released<span
>> > style="mso-spacerun: yes"> </span>2<span style="mso-tab-count:
>> > 1"> </span>at<span style="mso-spacerun:
>> > yes"> </span>88118872</font></font></span></p>
>> > >
>> > ><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span
>> > style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><font
>> > face="courier new,monospace"><font size="1">Reader acquired<span
>> > style="mso-spacerun: yes"> </span>3<span style="mso-tab-count:
>> > 1"> </span>at<span style="mso-spacerun:
>> > yes"> </span>88118872</font></font></span></p>
>> > >
>> > ><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font face="courier
>> > new,monospace" size="1"> </font></p>
>> > ><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font face="courier
>> > new,monospace" size="1"> </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: 'Courier New'"><font
>> > face="courier new,monospace"><font size="1">writer acquired<span
>> > style="mso-spacerun: yes"> </span>0 <span
>> > style="mso-tab-count: 1"> </span>at<span style="mso-spacerun:
>> > yes"> </span>88560984</font></font></span></p>
>> > >
>> > ><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span
>> > style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><font
>> > face="courier new,monospace"><font size="1">writer released<span
>> > style="mso-spacerun: yes"> </span>0 <span
>> > style="mso-tab-count: 1"> </span>at<span style="mso-spacerun:
>> > yes"> </span>88562984</font></font></span></p>
>> > >
>> > ><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span
>> > style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><font
>> > face="courier new,monospace"><font size="1">writer acquired<span
>> > style="mso-spacerun: yes"> </span>1<span
>> > style="mso-spacerun: yes"> </span><span style="mso-tab-count:
>> > 1"> </span>at<span style="mso-spacerun: yes">
>> > </span>88562984</font></font></span></p>
>> > >
>> > ><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span
>> > style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><font
>> > face="courier new,monospace"><font size="1">writer released<span
>> > style="mso-spacerun: yes"> </span>1<span
>> > style="mso-spacerun: yes"> </span><span style="mso-tab-count:
>> > 1"></span>at<span style="mso-spacerun: yes">
>> > </span>88564984</font></font></span></p>
>> > >
>> > ><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span
>> > style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><font
>> > face="courier new,monospace"><font size="1">writer acquired<span
>> > style="mso-spacerun: yes"> </span>2<span
>> > style="mso-spacerun: yes"> </span><span style="mso-tab-count:
>> > 1"> </span>at<span style="mso-spacerun: yes">
>> > </span>88566984</font></font></span></p>
>> > >
>> > ><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span
>> > style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><font
>> > face="courier new,monospace"><font size="1">writer released<span
>> > style="mso-spacerun: yes"> </span>2<span
>> > style="mso-spacerun: yes"> </span><span style="mso-tab-count:
>> > 1"> </span>at <span style="mso-spacerun:
>> > yes"> </span>88568984</font></font></span></p>
>> > >
>> > ><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span
>> > style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><font
>> > face="courier new,monospace"><font size="1">writer acquired<span
>> > style="mso-spacerun: yes"> </span>3 <span
>> > style="mso-tab-count: 1"> </span>at<span style="mso-spacerun:
>> > yes"> </span>88570984</font></font></span></p>
>> > >
>> > ><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span
>> > style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><font
>> > face="courier new,monospace"><font size="1">writer released<span
>> > style="mso-spacerun: yes"> </span>3 <span
>> > style="mso-tab-count: 1"> </span>at<span style="mso-spacerun:
>> > yes"> </span>88572984</font></font></span></p>
>> > >
>> > ><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font face="courier
>> > new,monospace" size="1"> </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: 'Courier New'"><font
>> > face="courier new,monospace"><font size="1">Reader acquired<span
>> > style="mso-spacerun: yes"> </span>0<span style="mso-tab-count:
>> > 1"> </span>at<span style="mso-spacerun:
>> > yes"> </span>88564984</font></font></span></p>
>> > >
>> > ><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span
>> > style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><font
>> > face="courier new,monospace"><font size="1">Reader released<span
>> > style="mso-spacerun: yes"> </span>0<span style="mso-tab-count:
>> > 1"> </span>at<span style="mso-spacerun:
>> > yes"> </span>88566984</font></font></span></p>
>> > >
>> > ><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span
>> > style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><font
>> > face="courier new,monospace"><font size="1">Reader acquired<span
>> > style="mso-spacerun: yes"> </span>1<span style="mso-tab-count:
>> > 1"> </span>at<span style="mso-spacerun:
>> > yes"> </span>88568984</font></font></span></p>
>> > >
>> > ><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span
>> > style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><font
>> > face="courier new,monospace"><font size="1">Reader released<span
>> > style="mso-spacerun: yes"> </span>1<span style="mso-tab-count:
>> > 1"> </span>at<span style="mso-spacerun:
>> > yes"> </span>88570984</font></font></span></p>
>> > >
>> > ><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span
>> > style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><font
>> > face="courier new,monospace"><font size="1">Reader acquired<span
>> > style="mso-spacerun: yes"> </span>2<span style="mso-tab-count:
>> > 1"> </span>at<span style="mso-spacerun:
>> > yes"> </span>88572984</font></font></span></p>
>> > >
>> > ><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span
>> > style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><font
>> > face="courier new,monospace"><font size="1">Reader released<span
>> > style="mso-spacerun: yes"> </span>2<span style="mso-tab-count:
>> > 1"> </span>at<span style="mso-spacerun:
>> > yes"> </span>88574984</font></font></span></p>
>> > >
>> > ><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span
>> > style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><font
>> > face="courier new,monospace"><font size="1">Reader acquired<span
>> > style="mso-spacerun: yes"> </span>3<span style="mso-tab-count:
>> > 1"> </span>at<span style="mso-spacerun:
>> > yes"> </span>88576984</font></font></span></p>
>> > >
>> > ><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span
>> > style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><font
>> > face="courier new,monospace" size="1">Reader released<span
>> > style="mso-spacerun: yes"> </span>3<span style="mso-tab-count:
>> > 1"> </span>at<span style="mso-spacerun:
>> > yes"> </span>88578984</font></span></p>
>> > >
>> > ><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font face="courier
>> > new,monospace" size="1"> </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> <<a
>> > href="mailto:mgillen at bbn.com">mgillen at bbn.com</a>>
>> > 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>> After having a look into
>> > ACE_ROOT/examples/Threads ,I implemented the<br>
>> > >> following code using ACE_RW_Process_Mutex. and run in both Windows
>> > and<br>> 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. Do<br>
>> > >you see the output messages in the wrong order? 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
>> >
>>
>>
>
>------=_Part_7130_8139674.1205128337979
>Content-Type: text/html; charset=ISO-8859-1
>Content-Transfer-Encoding: 7bit
>Content-Disposition: inline
>
><div>
><blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">
><div> </div>
><div><font color="#550055" size="1"></font> </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 "ace/config-win32.h" for windows<br><br>#include "ace/config-linux.h" for linux<br>
><br>DOES THE PROBLEM AFFECT:<br><br> COMPILATION? NO<br> LINKING? NO<br><br> EXECUTION? YES<br><br> OTHER<br><br> SYNOPSIS:<br>Adding a sleep(0) after the statement of releasing mutex ,single writer and reader is in sync.</font></div>
></blockquote>
><div>can u pl;ease let me know how to use the the ACE_RW_Process_mutex for multiple readers.??</div><br>
><blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">
><div><span style="FONT-SIZE: 10pt"><font size="1"></font></span> </div>
><div style="DIRECTION: ltr">
><p style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt"><font size="1">DESCRIPTION.</font></span></p></div>
><div><span>I am writing the code below.</span></div></blockquote>
><div> </div>
><div>I want to implement the same for multiple readers.can u please hint me about the same or if there is any sample of using ACE_RW_Process_mutex.</div><br>
><blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">
><div><span><font size="1"> 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"> <font style="BACKGROUND-COLOR: #33ccff">ACE_RW_Process_Mutex</font> m_RWMutex(ACE_TEXT("MyMutex"));<br>
><br></font></span><span><font size="1"> if (agrc == 1) // For server which is writing<br><br> {<br><br></font></span><font size="1"><span> while (1)<br><br> {<br><br> if (m_RWMutex.acquire_write() == 0)<br>
><br> {<br><br></span> ltime = ::GetTickCount(); //number of millisec since the system has started<span></span> </font><span><br><br><font size="1"> ACE_OS::printf("Writer acquired...%d at: %f\n",count++,ltime);<br>
><br> ACE_OS::sleep(2);<br><br> ltime = ::GetTickCount();<br><br> ACE_OS::printf("Writer releasing... ...%d at: %f\n",count++,ltime);<br><br> m_RWMutex.release();</font></span></div>
></blockquote>
><div> </div>
><div><font size="1"> ACE_OS::sleep(0);</font><br> </div><br>
><blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">
><div><span><font size="1"> }<br><br> }<br><br> }<br><br> else //For Client which is reading <br><br> {<br><br></font></span><span><font size="1"> while (1)<br><br> {<br>
><br> if (m_RWMutex.acquire_read() == 0)<br><br> {<br><br></font></span><span><font size="1"> ltime = ::GetTickCount(); <br><br> ACE_OS::printf("Reader acquired... ...%d at: %f\n",count++,ltime);<br>
><br> ACE_OS::sleep(2);<br><br> ltime = ::GetTickCount();<br><br> ACE_OS::printf("Reader releasing...%d at: %f\n",count++,ltime);<br><br></font></span><font size="1"><span> m_RWMutex.release();</span></font></div>
></blockquote>
><div> </div>
><div><font size="1">ACE_OS::sleep(0);</font></div><br>
><blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">
><div><font size="1"><span> }<br><br> }<br><br> }<br><br> return 0;<br><br>}</span> </font></div>
><div><font size="1"> </font></div>
><div><font size="1">OUTPUT is like this(WITH ACE_RW_Process_Mutex):<br> <br><br><br>Writer count TimeStamp(in millisec) </font><span><br><br><br><font size="1">writer acquired 0 at 88110592 <br>
><br>writer released 0 at 88112592<br><br></font><font size="1"><font style="BACKGROUND-COLOR: #ffff00">writer acquired 1 at 88112592<br><br>writer released 1 at 88114592<br></font><br>writer acquired 2 at 88114592<br>
><br>writer released 2 at 88116592<br><br>writer acquired 3 at 88116592<br><br>writer released 3 at 88118592<br><br> <br><br>Reader<br><br></font><font size="1"><font style="BACKGROUND-COLOR: #33ff33">Reader acquired 0 at 88112872<br>
><br>Reader released 0 at 88114872<br></font><br>Reader acquired 1 at 88114872<br><br>Reader released 1 at 88116872<br><br>Reader acquired 2 at 88116872<span></span> <br><br>Reader released 2 at 88118872<br>
><br>Reader acquired 3 at 88118872<br><br> <br><br> <br><br></font></span><font size="1">OUTPUT is like this (WITH ACE_Process_Mutex):<br><br> <br><br>Writer count TimeStamp(in millisec)</font><span><br>
><br><font size="1"> <br><br></font><font size="1"><font style="BACKGROUND-COLOR: #ffff00">writer acquired 0 at 88560984<br><br>writer released 0 at 88562984<br><br></font>writer acquired 1 at 88562984<br>
><br>writer released 1 at 88564984<br><br>writer acquired 2 at 88566984<br><br>writer released 2 at 88568984<br><br>writer acquired 3 at 88570984<br><br>writer released 3 at 88572984<br>
><br> <br><br>Reader<br><br></font><font size="1"><font style="BACKGROUND-COLOR: #33ff33">Reader acquired 0 at 88564984<br><br>Reader released 0 at 88566984<br></font><br>Reader acquired 1 at 88568984<br>
><br>Reader released 1 at 88570984<br><br>Reader acquired 2 at 88572984<br><br>Reader released 2 at 88574984<br><br>Reader acquired 3 at 88576984<br><br>Reader released 3 at 88578984<br>
><br> <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> <<a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:schmidt at dre.vanderbilt.edu" target="_blank">schmidt at dre.vanderbilt.edu</a>> 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> Thanks for using the PRF.<br><br>>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 "ace/config-win32.h" for windows<br>><br>>#include "ace/config-linux.h" for linux<br>><br>
>>DOES THE PROBLEM AFFECT:<br>><br>> COMPILATION? NO<br>><br>> LINKING? NO<br>><br>> EXECUTION? YES<br>><br>> OTHER<br>><br>> SYNOPSIS:<br>><br>
>>Use of ACE_RW_Process_Mutex.I developed a very simple program which needs to<br>>be 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<br>
>>syncronized.Pleaseprovide with a sample program of<br>>ACE_RW_Process_Mutex.<br>><br>><br>><br>>DESCRIPTION:<br>><br>>After having a look into ACE_ROOT/examples/Threads ,I implemented the<br>>following code using ACE_RW_Process_Mutex. and run in both Windows and<br>
>>linux5.0. But in both the cases the synchronization is not happening .<br>><br>>Yes I have tried with ACE_Process_Mutex.Its working Fine in Windows<br>>and linux.I m attaching the code of ACE_Process_Mutex along with its<br>
>>output and also of ACE_RW_Process_Mutex along with its output<br>><br>>The Code is written as below (WITH ACE_RW_Process_Mutex)<br>><br>>int ACE_TMAIN (int argc, ACE_TCHAR *argv[])<br>><br>>{<br>><br>
>>int count =0;<br>><br>>float ltime=0;<br><br>BTW, I recommend you use<br><br> ACE_RW_Process_Mutex m_RWMutex;<br><br> if (m_RWMutex.open (ACE_TEXT("MyMutex")) == -1)<br> ACE_DEBUG ((LM_ERROR, "%p\n", "RWMutex::open"));<br>
><br>to make sure that the open isn't failing.<br><br>> ACE_RW_Process_Mutex m_RWMutex(ACE_TEXT("MyMutex"));<br>><br>> if (agrc == 1) // For server which is writing<br>><br>
>> {<br>><br>> while (1)<br>><br>> {<br>><br>> if (m_RWMutex.acquire_write() == 0)<br>><br>> {<br>><br>> ltime = ::GetTickCount();<br>><br>
>> ACE_OS::printf("Writer acquired...%d at:<br>>%f\n",count++,ltime);<br>><br>> ACE_OS::sleep(2);<br>><br>> ltime = ::GetTickCount();<br>><br>> ACE_OS::printf("Writer releasing... ...%d at:<br>
>>%f\n",count++,ltime);<br>><br>> m_RWMutex.release();<br>><br>> }<br>><br>> }<br>><br>> }<br>><br>> else //For Client which is reading<br>
>><br>> {<br>><br>> while (1)<br>><br>> {<br>><br>> if (m_RWMutex.acquire_read() == 0)<br>><br>> {<br>><br>> ltime = ::GetTickCount();<br>
>><br>> ACE_OS::printf("Reader acquired... ...%d at:<br>>%f\n",count++,ltime);<br>><br>> ACE_OS::sleep(2);<br>><br>> ltime = ::GetTickCount();<br>
>><br>> ACE_OS::printf("Reader releasing...%d at:<br>>%f\n",count++,ltime);<br>><br>> m_RWMutex.release();<br>><br>> }<br>><br>> }<br>><br>
>> }<br>><br>> return 0;<br>><br>>}<br><br>I can't figure out what the difference is between the two outputs with<br>a cursory look. Can you please explain why you think the<br>RW_Process_Mutex isn't working whereas the Process_Mutex is working?<br>
><br>Thanks,<br><br> Doug<br><br>>output is like this(WITH ACE_RW_Process_Mutex):<br>><br>>Writer<br>><br>>writer acquired 0 at 88110592<br>><br>>writer released 0 at 88112592<br>
>><br>>writer acquired 1 at 88112592<br>><br>>writer released 1 at 88114592<br>><br>>writer acquired 2 at 88114592<br>><br>>writer released 2 at 88116592<br>><br>>writer acquired 3 at 88116592<br>
>><br>>writer released 3 at 88118592<br>><br>><br>><br>>Reader<br>><br>>Reader acquired 0 at 88112872<br>><br>>Reader released 0 at 88114872<br>><br>>Reader acquired 1 at 88114872<br>
>><br>>Reader released 1 at 88116872<br>><br>>Reader acquired 2 at 88116872<br>><br>>Reader released 2 at 88118872<br>><br>>Reader acquired 3 at 88118872<br>><br>><br>
>><br>><br>><br>>output is like this (WITH ACE_Process_Mutex):<br>><br>>Writer<br>><br>>writer acquired 0 at 88560984<br>><br>>writer released 0 at 88562984<br>><br>>writer acquired 1 at 88562984<br>
>><br>>writer released 1 at 88564984<br>><br>>writer acquired 2 at 88566984<br>><br>>writer released 2 at 88568984<br>><br>>writer acquired 3 at 88570984<br>><br>>writer released 3 at 88572984<br>
>><br>><br>><br>>Reader<br>><br>>Reader acquired 0 at 88564984<br>><br>>Reader released 0 at 88566984<br>><br>>Reader acquired 1 at 88568984<br>><br>>Reader released 1 at 88570984<br>
>><br>>Reader acquired 2 at 88572984<br>><br>>Reader released 2 at 88574984<br>><br>>Reader acquired 3 at 88576984<br>><br>>Reader released 3 at 88578984<br>><br>><br>
>><br>><br>>On 3/3/08, Matthew Gillen <<a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:mgillen at bbn.com" target="_blank">mgillen at bbn.com</a>> wrote:<br>>><br>>> kul gupta wrote:<br>
>>> > After having a look into ACE_ROOT/examples/Threads ,I implemented the<br>>> > following code using ACE_RW_Process_Mutex. and run in both Windows and<br>>> > 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/<br>>> happening. Do<br>>> you see the output messages in the wrong order? Do you never see some<br>>> output messages?<br>
>>><br>>> Matt<br>>><br>><br>>------=_Part_37_22204605.1204610511961<br>>Content-Type: text/html; charset=ISO-8859-1<br>>Content-Transfer-Encoding: 7bit<br>>Content-Disposition: inline<br>><br>
>><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><br>
>><pre><font face="courier new,monospace"><font size="1"><span style="FONT-FAMILY: Arial">ACE VERSION</span>: 5.5.8</font></font></pre><br>><div><font face="courier new,monospace"><font size="1"><span style="FONT-FAMILY: Arial">HOST MACHINE and OPERATING SYSTEM</span>:</font></font></div><br>
>><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><br>
>><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><br>
>><br>><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><br>
>><br>><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><br>
>><br>><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><br>
>><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><br>
>><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><br>
>><pre><font face="courier new,monospace" size="1">&nbsp;&nbsp;&nbsp; <span style="FONT-FAMILY: Arial">SYNOPSIS</span>:</font></pre><br>><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><br>
>><br>><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><br>
>><br>><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><br>
>><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><br>
>><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><br>
>><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><br>
>><br>><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><br>
>><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><br>
>><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><br>
>><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><br>
>><br>><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><br>
>><br>><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><br>
>><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><br>
>><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><br>
>><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><br>
>><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><br>
>><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><br>
>><br>><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><br>
>><br>><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><br>
>><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><br>
>><br>><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><br>
>><br>><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><br>
>><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><br>
>><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><br>
>><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><br>
>><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><br>
>><br>><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><br>
>><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><br>
>><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><br>
>><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><br>
>><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><br>
>><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><br>
>><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><br>
>><br>><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><br>
>><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><br>
>><br>><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><br>
>><br>><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><br>
>><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><br>
>><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><br>
>><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><br>
>><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><br>
>><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><br>
>><pre><font face="courier new,monospace" size="1">Writer </font></pre><br>><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><br>
>><br>><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><br>
>><br>><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><br>
>><br>><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><br>
>><br>><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><br>
>><br>><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><br>
>><br>><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><br>
>><br>><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><br>
>><br>><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font face="courier new,monospace" size="1">&nbsp;</font></p><br>><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font face="courier new,monospace" size="1">Reader</font></p><br>
>><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><br>
>><br>><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><br>
>><br>><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><br>
>><br>><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><br>
>><br>><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><br>
>><br>><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><br>
>><br>><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><br>
>><br>><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font face="courier new,monospace" size="1">&nbsp;</font></p><br>><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font face="courier new,monospace" size="1">&nbsp;</font></p><br>
>><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><br>
>><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font face="courier new,monospace" size="1">Writer </font></p><br>><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><br>
>><br>><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><br>
>><br>><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><br>
>><br>><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><br>
>><br>><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><br>
>><br>><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><br>
>><br>><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><br>
>><br>><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><br>
>><br>><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font face="courier new,monospace" size="1">&nbsp;</font></p><br>><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font face="courier new,monospace" size="1">Reader</font></p><br>
>><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><br>
>><br>><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><br>
>><br>><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><br>
>><br>><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><br>
>><br>><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><br>
>><br>><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><br>
>><br>><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><br>
>><br>><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><br>
>><br>><p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font face="courier new,monospace" size="1">&nbsp;</font></p><br><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:<a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:mgillen at bbn.com" target="_blank">mgillen at bbn.com</a>"><a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:mgillen at bbn.com" target="_blank">mgillen at bbn.com</a></a>&gt; wrote:</font></span><br>
>><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><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><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><br>><br>>------=_Part_37_22204605.1204610511961--<br>
>><br><br><br>--<br>Dr. Douglas C. Schmidt Professor and Associate Chair<br>Electrical Engineering and Computer Science TEL: (615) 343-8197<br>Vanderbilt University WEB: <a onclick="return top.js.OpenExtLink(window,event,this)" href="http://www.dre.vanderbilt.edu/~schmidt" target="_blank">www.dre.vanderbilt.edu/~schmidt</a><br>
>Nashville, TN 37203 NET: <a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:d.schmidt at vanderbilt.edu" target="_blank">d.schmidt at vanderbilt.edu</a><br></font></blockquote></div>
><br></blockquote></div><br>
>
>------=_Part_7130_8139674.1205128337979--
>
--
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