aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfile <file@f38db490-d61c-443f-a65b-d21fe96a405b>2006-09-07 16:30:44 +0000
committerfile <file@f38db490-d61c-443f-a65b-d21fe96a405b>2006-09-07 16:30:44 +0000
commitbb9b6b930593cfe2228af9a15ba758bb56de5669 (patch)
tree21ebee7beb67bfa785aeae25dc9eb15543f6fbc6
parent707a7767e28afbdac1dd5d30c3060bc01365d6e6 (diff)
Let's use the same thing we use in other places to calculate our time for ast_cond_timedwait (issue #7697 reported by bn999)
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.2@42260 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r--cdr.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/cdr.c b/cdr.c
index 272ce0f69..64a9e5690 100644
--- a/cdr.c
+++ b/cdr.c
@@ -1044,13 +1044,14 @@ static void *do_cdr(void *data)
int numevents = 0;
for(;;) {
- struct timeval now = ast_tvnow();
+ struct timeval now;
schedms = ast_sched_wait(sched);
/* this shouldn't happen, but provide a 1 second default just in case */
if (schedms <= 0)
schedms = 1000;
- timeout.tv_sec = now.tv_sec + (schedms / 1000);
- timeout.tv_nsec = (now.tv_usec * 1000) + ((schedms % 1000) * 1000);
+ now = ast_tvadd(ast_tvnow(), ast_samp2tv(schedms, 1000));
+ timeout.tv_sec = now.tv_sec;
+ timeout.tv_nsec = now.tv_usec * 1000;
/* prevent stuff from clobbering cdr_pending_cond, then wait on signals sent to it until the timeout expires */
ast_mutex_lock(&cdr_pending_lock);
ast_cond_timedwait(&cdr_pending_cond, &cdr_pending_lock, &timeout);