diff options
author | russell <russell@f38db490-d61c-443f-a65b-d21fe96a405b> | 2007-06-15 20:18:58 +0000 |
---|---|---|
committer | russell <russell@f38db490-d61c-443f-a65b-d21fe96a405b> | 2007-06-15 20:18:58 +0000 |
commit | a1b09a6c5604e678ad53f630d3a498a84636235b (patch) | |
tree | f7f6c46005438222d62c5e1668d11fef00ff30e3 /res | |
parent | 5b4266dc4326d82f8473e3af5f9c108b8036b728 (diff) |
Fix a silly deadlock in res_features that I found while debugging on one of
blitzrage's test machines. It was one of the situations where he was seeing
hung channels, and may be the cause of some of the reports from other people.
(related to issue #9235)
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@69579 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'res')
-rw-r--r-- | res/res_features.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/res/res_features.c b/res/res_features.c index 9ffc2861d..81ac83950 100644 --- a/res/res_features.c +++ b/res/res_features.c @@ -1083,8 +1083,10 @@ static int ast_feature_interpret(struct ast_channel *chan, struct ast_channel *p while ((tok = strsep(&tmp, "#"))) { AST_LIST_LOCK(&feature_list); - if (!(feature = find_dynamic_feature(tok))) + if (!(feature = find_dynamic_feature(tok))) { + AST_LIST_UNLOCK(&feature_list); continue; + } /* Feature is up for consideration */ if (!strcmp(feature->exten, code)) { |