aboutsummaryrefslogtreecommitdiffstats
path: root/channels/chan_agent.c
diff options
context:
space:
mode:
authormarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2004-12-11 04:46:49 +0000
committermarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2004-12-11 04:46:49 +0000
commitf975cf1ad60aad9f51c1bfaa6e15762d36579be1 (patch)
tree6c8476df117b7c7c1611accdfcf126d3d7d41324 /channels/chan_agent.c
parent6c009e04ff978428f3aee7db4ca31876c993edba (diff)
Fix use count for agent/local (bug #2996 et al)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@4425 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/chan_agent.c')
-rwxr-xr-xchannels/chan_agent.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/channels/chan_agent.c b/channels/chan_agent.c
index 4421debd4..40a29ee26 100755
--- a/channels/chan_agent.c
+++ b/channels/chan_agent.c
@@ -561,6 +561,10 @@ static int agent_hangup(struct ast_channel *ast)
* as in apps/app_chanisavail.c:chanavail_exec()
*/
+ ast_mutex_lock(&usecnt_lock);
+ usecnt--;
+ ast_mutex_unlock(&usecnt_lock);
+
ast_log(LOG_DEBUG, "Hangup called for state %s\n", ast_state2str(ast->_state));
if (p->start && (ast->_state != AST_STATE_UP)) {
howlong = time(NULL) - p->start;