diff options
Diffstat (limited to 'apps/app_softhangup.c')
-rwxr-xr-x | apps/app_softhangup.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/apps/app_softhangup.c b/apps/app_softhangup.c index 497f03860..43a42247c 100755 --- a/apps/app_softhangup.c +++ b/apps/app_softhangup.c @@ -47,13 +47,15 @@ static int softhangup_exec(struct ast_channel *chan, void *data) return 0; } LOCAL_USER_ADD(u); - c = ast_channel_walk(NULL); + c = ast_channel_walk_locked(NULL); while (c) { if (!strcasecmp(c->name, data)) { ast_softhangup(c, AST_SOFTHANGUP_EXPLICIT); + ast_mutex_unlock(&c->lock); break; } - c = ast_channel_walk(c); + ast_mutex_unlock(&c->lock); + c = ast_channel_walk_locked(c); } LOCAL_USER_REMOVE(u); |