aboutsummaryrefslogtreecommitdiffstats
path: root/main
diff options
context:
space:
mode:
authorfile <file@f38db490-d61c-443f-a65b-d21fe96a405b>2008-02-27 17:07:33 +0000
committerfile <file@f38db490-d61c-443f-a65b-d21fe96a405b>2008-02-27 17:07:33 +0000
commit3d2d481221663988d1cddfc6b092c25d25e3602f (patch)
treefd15f5567b780292ee9f64d4fc2fa14e7a9c11a2 /main
parentd01b4b865da562c70a693fd42d7ea0dc52543878 (diff)
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: http://svn.digium.com/svn/asterisk/branches/1.4@104596 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'main')
-rw-r--r--main/loader.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/main/loader.c b/main/loader.c
index 1b808993e..d423af234 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;
}