<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/3865/">https://reviewboard.asterisk.org/r/3865/</a>
     </td>
    </tr>
   </table>
   <br />











<div>




<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">
 <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">
    <a href="https://reviewboard.asterisk.org/r/3865/diff/2/?file=65604#file65604line1083" style="color: black; font-weight: bold; text-decoration: underline;">team/group/ari-greedy-atxfer/res/stasis/app.c</a>
    <span style="font-weight: normal;">

     (Diff revision 2)

    </span>
   </th>
  </tr>
 </thead>



 
 

 <tbody>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" align="right"><font size="2"></font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>
    <th bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font size="2">1083</font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "><span class="tb">   </span><span class="n">ao2_link_flags</span><span class="p">(</span><span class="n">app</span><span class="o">-></span><span class="n">forwards</span><span class="p">,</span> <span class="n">new_forwards</span><span class="p">,</span> <span class="n">OBJ_NOLOCK</span><span class="p">);</span></pre></td>
  </tr>

 </tbody>

</table>

<pre style="margin-left: 2em; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Use of OBJ_NOLOCK is required _only_ if the container has a rd/wr lick.  Otherwise it is an optimization at best.  You are telling the ao2 function that you have alread obtained a lock on the container.

The app->forwards container has a recursive mutex so OBJ_NOLOCK really should not be used at all.

In the case of this patch have you obtained it?  I don't think so.</pre>
</div>
<br />



<p>- rmudgett</p>


<br />
<p>On July 28th, 2014, 11:41 a.m. CDT, opticron wrote:</p>








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

<div>Review request for Asterisk Developers, Matt Jordan and Mark Michelson.</div>
<div>By opticron.</div>


<p style="color: grey;"><i>Updated July 28, 2014, 11:41 a.m.</i></p>







<div style="margin-top: 1.5em;">
 <b style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Bugs: </b>


 <a href="https://issues.asterisk.org/jira/browse/ASTERISK-23941">ASTERISK-23941</a>


</div>



<div style="margin-top: 1.5em;">
 <b style="color: #575012; font-size: 10pt;">Repository: </b>
Asterisk
</div>


<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;">This adds handling for a channel being pushed into Stasis() via masquerade. It notifies the Stasis() application using the previously established StasisStart with the "replace_channel" key populated with a channel snapshot of the channel that is being replaced. It also sets up the new channel topic forwards required to get information from the new channel and tears down the old channel topic forwards.

This patch also introduces the concept of chan_breakdown datastore callbacks which are called for the channel being masqueraded into during a masquerade.</pre>
  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </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;">Verified that the correct messages were being received by the Stasis() application monitoring the channel.</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>team/group/ari-greedy-atxfer/res/stasis/app.c <span style="color: grey">(419681)</span></li>

 <li>team/group/ari-greedy-atxfer/res/stasis/app.h <span style="color: grey">(419681)</span></li>

 <li>team/group/ari-greedy-atxfer/res/res_stasis.c <span style="color: grey">(419681)</span></li>

 <li>team/group/ari-greedy-atxfer/main/channel.c <span style="color: grey">(419681)</span></li>

 <li>team/group/ari-greedy-atxfer/include/asterisk/datastore.h <span style="color: grey">(419681)</span></li>

</ul>

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







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








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