[Ace-users] [ace-users] ACE_RW_Process_Mutex NOT WORKING
kul gupta
kulg123 at gmail.com
Thu Mar 13 00:25:09 CDT 2008
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:
Thanks for the Guidance.
I have made the copy of ACE_ROOT/tests/Process_Mutex_Test.cpp and when i m
trying to run ACE_ROOT/tests/Process_Mutex_Test.cpp by modifying the
ACE_Process_Mutex to ACE_RW_Process_mutex with command line arguments as *-n
mutex* , I m getting *abort status* after the parent has spawned the first
child process,acquired the mutex,worked for somewhile and released the
mutex.
DESCRIPTIOM
I want to have a the multiple readers to have *simulatenous access to a
shared data*.
Is there any count we can maintain to have the number of active
readers(reader processes)
Thanks
Kul
On 3/10/08, Douglas C. Schmidt <schmidt at dre.vanderbilt.edu> wrote:
>
> 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="c...
>
> [Message clipped]
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://list.isis.vanderbilt.edu/pipermail/ace-users/attachments/20080313/0293c80e/attachment-0001.html
More information about the Ace-users
mailing list