[svn-commits] trunk r10140 - /trunk/autoservice.c
svn-commits at lists.digium.com
svn-commits at lists.digium.com
Tue Feb 14 18:38:20 MST 2006
Author: kpfleming
Date: Tue Feb 14 19:38:20 2006
New Revision: 10140
URL: http://svn.digium.com/view/asterisk?rev=10140&view=rev
Log:
various cleanups (issue #6389)
Modified:
trunk/autoservice.c
Modified: trunk/autoservice.c
URL: http://svn.digium.com/view/asterisk/trunk/autoservice.c?rev=10140&r1=10139&r2=10140&view=diff
==============================================================================
--- trunk/autoservice.c (original)
+++ trunk/autoservice.c Tue Feb 14 19:38:20 2006
@@ -30,7 +30,6 @@
#include <signal.h>
#include <errno.h>
#include <unistd.h>
-#include <math.h> /* For PI */
#include "asterisk.h"
@@ -64,15 +63,13 @@
static void *autoservice_run(void *ign)
{
- struct ast_channel *mons[MAX_AUTOMONS];
- int x;
- int ms;
- struct ast_channel *chan;
- struct asent *as;
- struct ast_frame *f;
for(;;) {
- x = 0;
+ struct ast_channel *mons[MAX_AUTOMONS];
+ struct ast_channel *chan;
+ struct asent *as;
+ int x = 0, ms = 500;
+
AST_LIST_LOCK(&aslist);
AST_LIST_TRAVERSE(&aslist, as, list) {
if (!as->chan->_softhangup) {
@@ -84,11 +81,10 @@
}
AST_LIST_UNLOCK(&aslist);
- ms = 500;
chan = ast_waitfor_n(mons, x, &ms);
if (chan) {
/* Read and ignore anything that occurs */
- f = ast_read(chan);
+ struct ast_frame *f = ast_read(chan);
if (f)
ast_frfree(f);
}
@@ -101,17 +97,14 @@
{
int res = -1;
struct asent *as;
- int needstart;
AST_LIST_LOCK(&aslist);
-
- /* Check if autoservice thread is executing */
- needstart = (asthread == AST_PTHREADT_NULL) ? 1 : 0 ;
/* Check if the channel already has autoservice */
AST_LIST_TRAVERSE(&aslist, as, list) {
if (as->chan == chan)
break;
}
+ /* XXX if found, we return -1, why ??? */
/* If not, start autoservice on channel */
if (!as) {
@@ -120,7 +113,7 @@
as->chan = chan;
AST_LIST_INSERT_HEAD(&aslist, as, list);
res = 0;
- if (needstart) {
+ if (asthread == AST_PTHREADT_NULL) { /* need start the thread */
if (ast_pthread_create(&asthread, NULL, autoservice_run, NULL)) {
ast_log(LOG_WARNING, "Unable to create autoservice thread :(\n");
/* There will only be a single member in the list at this point,
More information about the svn-commits
mailing list