[asterisk-commits] dvossel: branch 1.8 r326484 - /branches/1.8/res/res_timing_timerfd.c
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Wed Jul 6 10:26:53 CDT 2011
Author: dvossel
Date: Wed Jul 6 10:26:49 2011
New Revision: 326484
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=326484
Log:
Reverts fix for timerfd locking issue.
jrose discovered a performance issue with this
fix that prevents his analog phones from working
when using timerfd as a timing source. Until
it is understood what is causing this performance
problem, this patch is being reverted.
Modified:
branches/1.8/res/res_timing_timerfd.c
Modified: branches/1.8/res/res_timing_timerfd.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.8/res/res_timing_timerfd.c?view=diff&rev=326484&r1=326483&r2=326484
==============================================================================
--- branches/1.8/res/res_timing_timerfd.c (original)
+++ branches/1.8/res/res_timing_timerfd.c Wed Jul 6 10:26:49 2011
@@ -162,35 +162,7 @@
uint64_t expirations;
int read_result = 0;
- struct timerfd_timer *our_timer, find_helper = {
- .handle = handle,
- };
-
- if (!(our_timer = ao2_find(timerfd_timers, &find_helper, OBJ_POINTER))) {
- ast_log(LOG_ERROR, "Couldn't find timer with handle %d\n", handle);
- return;
- }
-
- if (our_timer->saved_timer.it_value.tv_nsec == 0L) {
- ast_log(LOG_DEBUG, "Reading attempt on idle timerfd.\n");
- return;
- }
-
do {
- struct itimerspec timer_status;
-
- if (timerfd_gettime(handle, &timer_status)) {
- ast_log(LOG_ERROR, "Call to timerfd_gettime() error: %s\n", strerror(errno));
- expirations = 0;
- break;
- }
-
- if ((timer_status.it_value.tv_sec == 0) && (timer_status.it_value.tv_nsec == 0)) {
- ast_log(LOG_DEBUG, "Call to timerfd_timer_ack() with disarmed timer - break now.\n");
- expirations = 0;
- break;
- }
-
read_result = read(handle, &expirations, sizeof(expirations));
if (read_result == -1) {
if (errno == EINTR || errno == EAGAIN) {
More information about the asterisk-commits
mailing list