From 97869f4771306c05c40083f7c36164321e88fb6e Mon Sep 17 00:00:00 2001 From: Joshua Colp Date: Wed, 27 Feb 2008 17:07:33 +0000 Subject: [PATCH] Use the lock (which already existed, it just wasn't used) on the updaters list to protect the contents instead of the overall module list lock. (closes issue #12080) Reported by: ChaseVenters git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@104596 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- main/loader.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/main/loader.c b/main/loader.c index 1b808993e5..d423af2342 100644 --- a/main/loader.c +++ b/main/loader.c @@ -905,10 +905,10 @@ void ast_update_use_count(void) resource has changed */ struct loadupdate *m; - AST_LIST_LOCK(&module_list); + AST_LIST_LOCK(&updaters); AST_LIST_TRAVERSE(&updaters, m, entry) m->updater(); - AST_LIST_UNLOCK(&module_list); + AST_LIST_UNLOCK(&updaters); } int ast_update_module_list(int (*modentry)(const char *module, const char *description, int usecnt, const char *like), @@ -939,9 +939,9 @@ int ast_loader_register(int (*v)(void)) return -1; tmp->updater = v; - AST_LIST_LOCK(&module_list); + AST_LIST_LOCK(&updaters); AST_LIST_INSERT_HEAD(&updaters, tmp, entry); - AST_LIST_UNLOCK(&module_list); + AST_LIST_UNLOCK(&updaters); return 0; } @@ -950,7 +950,7 @@ int ast_loader_unregister(int (*v)(void)) { struct loadupdate *cur; - AST_LIST_LOCK(&module_list); + AST_LIST_LOCK(&updaters); AST_LIST_TRAVERSE_SAFE_BEGIN(&updaters, cur, entry) { if (cur->updater == v) { AST_LIST_REMOVE_CURRENT(&updaters, entry); @@ -958,7 +958,7 @@ int ast_loader_unregister(int (*v)(void)) } } AST_LIST_TRAVERSE_SAFE_END; - AST_LIST_UNLOCK(&module_list); + AST_LIST_UNLOCK(&updaters); return cur ? 0 : -1; }