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


<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('https://reviewboard.asterisk.orgrb/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 Tilghman Lesher.</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;">Eight months ago, a fix went in to solve the problem of loading modules that were compiled with a different value of DEBUG_THREADS than the core Asterisk binary, which results in differences in the structure of a mutex.  Unfortunately, this did not take into account the size of the mutex structure, especially as it pertains to chan_iax2.  The result is that chan_iax2, starting with 1.8, now takes up 100MB of memory.  This is primarily due to the 3016 bytes used for each mutex, which is in each astobj2, and we allocate 32767 of them at boot, one for each possible IAX2 source number.  This change backs out that changeset and instead adds a flag to the loader, to ensure that the value of DEBUG_THREADS for each module loaded is the same value as was compiled for the core Asterisk binary.</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;">Compiled Asterisk both with and without DEBUG_THREADS, and for each, added a module to the directory that was from the opposite DEBUG_THREADS status.  As predicted, Asterisk refused to load the module with a different compile-time setting of DEBUG_THREADS.</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>/branches/1.8/include/asterisk/lock.h <span style="color: grey">(300043)</span></li>

 <li>/branches/1.8/include/asterisk/module.h <span style="color: grey">(300043)</span></li>

 <li>/branches/1.8/main/astobj2.c <span style="color: grey">(300043)</span></li>

 <li>/branches/1.8/main/heap.c <span style="color: grey">(300043)</span></li>

 <li>/branches/1.8/main/loader.c <span style="color: grey">(300043)</span></li>

 <li>/branches/1.8/main/lock.c <span style="color: grey">(300043)</span></li>

</ul>

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




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




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