<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/2561/">https://reviewboard.asterisk.org/r/2561/</a>
</td>
</tr>
</table>
<br />
<table bgcolor="#e0e0e0" width="100%" cellpadding="8" style="border: 1px gray solid;">
<tr>
<td>
<h1 style="margin-right: 0.2em; padding: 0; font-size: 10pt;">This change has been discarded.</h1>
</td>
</tr>
</table>
<br />
<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.png'); background-position: left top; background-repeat: repeat-x; border: 1px black solid;">
<tr>
<td>
<div>Review request for Asterisk Developers.</div>
<div>By David Lee.</div>
<p style="color: grey;"><i>Updated May 23, 2013, 9:58 a.m.</i></p>
<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;">During an immediate shutdown (in which modules are not unloaded),
there is a window of time where the core message types have been
cleaned up, but the message bus is still running. Since subscriptions
from the modules remain subscribed, any references they have to core
message types could be invalid.
This patch does two things.
First, it changes the assert in accessing a NULL message type to an
error level log message. All of the message type functions are
actually NULL safe, so the assert is a bit heavy-handed. Especially
for anyone building with DO_CRASH.
Secondly, it introduces stasis_register_atexit(), which allows the
registration of handlers that run after the message bus has been shut
down.
All message type cleanup in main/*.c was moved to Stasis atexit
handlers, so that those message types can be referred by any of the
lingering subscriptions in the message bus.</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;">Lots of core stop {now,gracefully} with and without channels up.</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>/trunk/include/asterisk/security_events.h <span style="color: grey">(389540)</span></li>
<li>/trunk/include/asterisk/stasis.h <span style="color: grey">(389540)</span></li>
<li>/trunk/include/asterisk/stasis_bridging.h <span style="color: grey">(389540)</span></li>
<li>/trunk/include/asterisk/stasis_channels.h <span style="color: grey">(389540)</span></li>
<li>/trunk/main/app.c <span style="color: grey">(389540)</span></li>
<li>/trunk/main/asterisk.c <span style="color: grey">(389540)</span></li>
<li>/trunk/main/bridging.c <span style="color: grey">(389540)</span></li>
<li>/trunk/main/channel.c <span style="color: grey">(389540)</span></li>
<li>/trunk/main/devicestate.c <span style="color: grey">(389540)</span></li>
<li>/trunk/main/named_acl.c <span style="color: grey">(389540)</span></li>
<li>/trunk/main/presencestate.c <span style="color: grey">(389540)</span></li>
<li>/trunk/main/security_events.c <span style="color: grey">(389540)</span></li>
<li>/trunk/main/stasis.c <span style="color: grey">(389540)</span></li>
<li>/trunk/main/stasis_bridging.c <span style="color: grey">(389540)</span></li>
<li>/trunk/main/stasis_cache.c <span style="color: grey">(389540)</span></li>
<li>/trunk/main/stasis_channels.c <span style="color: grey">(389540)</span></li>
<li>/trunk/main/test.c <span style="color: grey">(389540)</span></li>
</ul>
<p><a href="https://reviewboard.asterisk.org/r/2561/diff/" style="margin-left: 3em;">View Diff</a></p>
</td>
</tr>
</table>
</div>
</body>
</html>