<div dir="ltr"><div class="gmail_quote"><span style="color:rgb(0,0,0);font-family:Verdana;font-size:13px;line-height:18.2px;background-color:rgb(236,236,236)">ACE VERSION: 5.3.1</span><br><br><br><div dir="ltr"><p class="MsoNormal">HOST MACHINE and OPERATING SYSTEM:</p>

<p class="MsoNormal">      Linux kernel 3.12.19,
 Powerpc - QoIrq processor</p>

<p class="MsoNormal"> </p>

<p class="MsoNormal"> </p>

<p class="MsoNormal">SYNOPSIS:</p>

<p class="MsoNormal">[Events using ACE Framework, synchronization using mutexes]</p>

<p class="MsoNormal"> </p>

<p class="MsoNormal">DESCRIPTION:</p>

<p class="MsoNormal">I have a question regarding synchronization using mutex in
ACE framework. Task A has been registered with a Timer Handler. </p>

<p class="MsoNormal">In Task A function foo is called. </p>

<p class="MsoNormal">A Critical Section in foo is protected using recursive
mutexes. </p>

<p class="MsoNormal">The variables that are used by foo function ,are used
(write/read) acces by handle_timeout. </p>

<p class="MsoNormal">That means that we need to protect them.</p>

<p class="MsoNormal"> </p>

<p class="MsoNormal">We have the following piece of pseudocode</p>

<p class="MsoNormal"> </p>

<p class="MsoNormal">foo()</p>

<p class="MsoNormal">{</p>

<p class="MsoNormal">lock(recursive_mutex)</p>

<p class="MsoNormal">C.S</p>

<p class="MsoNormal">unlock(recursive_mutex)</p>

<p class="MsoNormal">}</p>

<p class="MsoNormal">handle_timeout()</p>

<p class="MsoNormal">{</p>

<p class="MsoNormal">lock(recursive_mutex)</p>

<p class="MsoNormal">C.S</p>

<p class="MsoNormal">unlock(recursive_mutex)</p>

<p class="MsoNormal">}</p>

<p class="MsoNormal">If the handle_timeout takes place before foo release the
lock, will a deadlock take place?</p>

<p class="MsoNormal"> </p>

<p class="MsoNormal">If another event with highest priority comes what happens?.
Will we have a context switch and the second event start processing?</p>

<p class="MsoNormal"> </p>

<p class="MsoNormal">How we protect event to not interrupt before complete their
work?</p><div><div><div dir="ltr"><div><br></div><div>Thanks </div><div>George<br><br>Software Engineer @ Unify S.A<br>M.Sc. Degree in Computer Systems Technology, Kapodistrian & National University of Athens<br>5-year Diploma in Computer Engineering, University of Thessaly<br>email: <a href="mailto:getsoubl@gmail.com" target="_blank">getsoubl@gmail.com</a></div></div></div></div>
</div>
</div><br></div>