[asterisk-dev] [Code Review] 4465: Update the kqueue timing module to conform to current timer API.
Justin T. Gibbs
reviewboard at asterisk.org
Thu Mar 12 21:07:46 CDT 2015
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/4465/
-----------------------------------------------------------
(Updated March 13, 2015, 2:07 a.m.)
Review request for Asterisk Developers.
Changes
-------
If EVFLT_USER isn't available, fallback to EVFLT_READ against a file descriptor from a closed pipe to keep a kqueue timer continuously active.
Bugs: ASTERISK-24857
https://issues.asterisk.org/jira/browse/ASTERISK-24857
Repository: Asterisk
Description
-------
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.
Diffs (updated)
-----
/trunk/res/res_timing_kqueue.c 432637
Diff: https://reviewboard.asterisk.org/r/4465/diff/
Testing
-------
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.
Thanks,
Justin T. Gibbs
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20150313/c0e83a06/attachment-0001.html>
More information about the asterisk-dev
mailing list