aboutsummaryrefslogtreecommitdiffstats
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
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
-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;
}