[Ace-users] [ace-users] ACE_RW_Process_Mutex NOT WORKING
kul gupta
kulg123 at gmail.com
Wed Mar 5 22:31:07 CST 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:
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 in sync.
I am attaching a code and description of the output and the problem.
DESCRIPTION.
I also tried it using ACE_Process_Mutex by just replacing the
ACE_RW_Process_Mutex in code by ACE_Process_Mutex .With ACE_Process_Mutex
,synchronization is proper and writer and reader are acquiring and releasing
in correct order .(when writer is releasing, then only reader is acquiring
and vice versa. The output for the same is in last of the mail).
BUT when using ACE_RW_Process_Mutex ,the writer and reader are not in sync.
If we see the output for this as mentioned below, writer has acquired the
mutex at
88112592 millisec and released at 88114592 millisec i..e writer is working
for 2 sec and has acquired mutex for 2 sec.
(writer acquired 1 at 88112592
writer released 1 at 88114592)
Now when we see the Reader, it has acquired the mutex at 88112872 millisec.
(Reader acquired 0 at 88112872
Reader released 0 at 88114872)
This should ideally not happen as mutex is still with the writer and it is
relasing at 88114592 millisec.
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();
}
}
}
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;
}
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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://list.isis.vanderbilt.edu/pipermail/ace-users/attachments/20080306/28e7785e/attachment-0001.html
More information about the Ace-users
mailing list