Don't try to do recursive locking/unlocking when it isn't supported.
authorJoshua Colp <jcolp@digium.com>
Fri, 2 Mar 2007 18:05:29 +0000 (18:05 +0000)
committerJoshua Colp <jcolp@digium.com>
Fri, 2 Mar 2007 18:05:29 +0000 (18:05 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@57519 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/pbx.c

index d940e52..f0a3f36 100644 (file)
@@ -5228,7 +5228,6 @@ void __ast_context_destroy(struct ast_context *con, const char *registrar)
        struct ast_exten *e, *el, *en;
        struct ast_ignorepat *ipi;
 
-       ast_wrlock_contexts();
        for (tmp = contexts; tmp; ) {
                struct ast_context *next;       /* next starting point */
                for (; tmp; tmpl = tmp, tmp = tmp->next) {
@@ -5278,12 +5277,13 @@ void __ast_context_destroy(struct ast_context *con, const char *registrar)
                /* if we have a specific match, we are done, otherwise continue */
                tmp = con ? NULL : next;
        }
-       ast_unlock_contexts();
 }
 
 void ast_context_destroy(struct ast_context *con, const char *registrar)
 {
+       ast_wrlock_contexts();
        __ast_context_destroy(con,registrar);
+       ast_unlock_contexts();
 }
 
 static void wait_for_hangup(struct ast_channel *chan, void *data)