<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/4465/">https://reviewboard.asterisk.org/r/4465/</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;">My immediate question for this is: How does this impact OSX? The timing module was originally written for both, do these changes work for both?</pre>
 <br />









<p>- Joshua Colp</p>


<br />
<p>On March 9th, 2015, 6:21 p.m. UTC, Justin T. Gibbs 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.</div>
<div>By Justin T. Gibbs.</div>


<p style="color: grey;"><i>Updated March 9, 2015, 6:21 p.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-24857">ASTERISK-24857</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;">Update the kqueue timing module to conform to current timer API.

This fixes issues with using the kqueue timing source on Asterisk 13
on FreeBSD 10.

res_timing_kqueue.c:
        Remove support for kevent64().  The values used to support Asterisk
        timers fit within 32bits and so can be handled on all platforms via
        kevent().

        Provide debug logging for, but do not track, unacked events.  This
        matches the behavior of all other timer implementations.

        Implement continuous mode by triggering and leaving active, a user
        event.  This ensures that the file descriptor for the timer returns
        immediately from poll(), without placing the load of a high speed
        timer on the kernel.

        In kqueue_timer_get_max_rate(), don't overstate the capability of
        the timer.  On some platforms, UINT_MAX is greater than INTPTR_MAX,
        the largest integer type kqueue supports for timers.

        In kqueue_timer_get_event(), assume the caller woke up from poll()
        and just return the mode the timer is currently in.  This matches
        all other timer implementations.

        Adjust the test code now that unacked events are not tracked.</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;">Asterisk 13.2.0 on FreeBSD 10-stable: "timing test", pjsip incoming/outgoing calls, voicemail prompts and recordings.  All of the above failed without these changes.</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/res/res_timing_kqueue.c <span style="color: grey">(432637)</span></li>

</ul>

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







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








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