<html>
 <body>
  <div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
   <table bgcolor="#f9f3c9" width="100%" cellpadding="8" style="border: 1px #c9c399 solid;">
    <tr>
     <td>
      This is an automatically generated e-mail. To reply, visit:
      <a href="https://reviewboard.asterisk.org/r/2194/">https://reviewboard.asterisk.org/r/2194/</a>
     </td>
    </tr>
   </table>
   <br />





 <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Speaking as the guy who wrote the LOCK() dialplan function, I&#39;d strongly caution against using primitives directly like this.  When I originally wrote that function, I, too, used the mutex primitives, and I learned that you&#39;ll get stuck in situations where you cannot unlock a mutex, because the thread which locked it no longer exists, having been cancelled elsewhere.

There are situations where it just does not function correctly, especially when dealing with things such as channel masquerades.  I&#39;d suggest that you instead use something along the lines of an ast_waitfor() to do the waiting, with lists of threads waiting on named conditions.  This allows cleanup, when channels exit abnormally (such as when a caller hangs up) or after a remote pickup (channel masquerade).</pre>
 <br />







<p>- Tilghman</p>


<br />
<p>On November 12th, 2012, 10:33 a.m., rcasas wrote:</p>






<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('https://reviewboard.asterisk.org/media/rb/images/review_request_box_top_bg.png'); background-position: left top; background-repeat: repeat-x; border: 1px black solid;">
 <tr>
  <td>

<div>Review request for Asterisk Developers.</div>
<div>By rcasas.</div>


<p style="color: grey;"><i>Updated Nov. 12, 2012, 10:33 a.m.</i></p>




<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">ASTERISK-20635</pre>
  </td>
 </tr>
</table>





<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">

 <li>/asterisk-new/apps/app_waitcond.c <span style="color: grey">(PRE-CREATION)</span></li>

</ul>

<p><a href="https://reviewboard.asterisk.org/r/2194/diff/" style="margin-left: 3em;">View Diff</a></p>




  </td>
 </tr>
</table>








  </div>
 </body>
</html>