dect
/
asterisk
Archived
13
0
Fork 0

clean up file descriptor leak and check for io before thread cancellation

git-svn-id: http://svn.digium.com/svn/asterisk/trunk@1888 f38db490-d61c-443f-a65b-d21fe96a405b
This commit is contained in:
jeremy 2004-01-03 03:02:27 +00:00
parent 21c5f2a514
commit 84ed7d5a8d
1 changed files with 10 additions and 5 deletions

View File

@ -487,10 +487,13 @@ static int oh323_hangup(struct ast_channel *c)
/* Start the process if it's not already started */
if (!p->alreadygone) {
if (h323_clear_call((p->cd).call_token))
ast_log(LOG_DEBUG, "ClearCall failed.\n");
p->needdestroy = 1;
}
}
/* Tell the H.323 stack to cleanly tare down the call */
if (h323_clear_call((p->cd).call_token)) {
ast_log(LOG_DEBUG, "ClearCall failed.\n");
}
/* Update usage counter */
ast_mutex_lock(&usecnt_lock);
@ -1236,13 +1239,15 @@ restartsearch:
}
ast_mutex_unlock(&iflock);
pthread_testcancel();
/* Wait for sched or io */
res = ast_sched_wait(sched);
if ((res < 0) || (res > 1000))
res = 1000;
res = ast_io_wait(io, res);
/* Check for thread cancellation */
pthread_testcancel();
ast_mutex_lock(&monlock);
if (res >= 0)
ast_sched_runq(sched);