mod_hash: free all hashtables on shutdown
This commit is contained in:
parent
d355c28d4d
commit
e76d7d925e
|
@ -486,8 +486,35 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_hash_load)
|
||||||
|
|
||||||
SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_hash_shutdown)
|
SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_hash_shutdown)
|
||||||
{
|
{
|
||||||
|
switch_hash_index_t *hi = NULL;
|
||||||
|
|
||||||
switch_scheduler_del_task_group("mod_hash");
|
switch_scheduler_del_task_group("mod_hash");
|
||||||
|
|
||||||
|
switch_thread_rwlock_wrlock(globals.limit_hash_rwlock);
|
||||||
|
switch_thread_rwlock_wrlock(globals.db_hash_rwlock);
|
||||||
|
|
||||||
|
while ((hi = switch_hash_first(NULL, globals.limit_hash))) {
|
||||||
|
void *val = NULL;
|
||||||
|
const void *key;
|
||||||
|
switch_ssize_t keylen;
|
||||||
|
switch_hash_this(hi, &key, &keylen, &val);
|
||||||
|
free(val);
|
||||||
|
switch_core_hash_delete(globals.limit_hash, key);
|
||||||
|
}
|
||||||
|
|
||||||
|
while ((hi = switch_hash_first(NULL, globals.db_hash))) {
|
||||||
|
void *val = NULL;
|
||||||
|
const void *key;
|
||||||
|
switch_ssize_t keylen;
|
||||||
|
switch_hash_this(hi, &key, &keylen, &val);
|
||||||
|
free(val);
|
||||||
|
switch_core_hash_delete(globals.db_hash, key);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
switch_thread_rwlock_unlock(globals.limit_hash_rwlock);
|
||||||
|
switch_thread_rwlock_unlock(globals.db_hash_rwlock);
|
||||||
|
|
||||||
switch_thread_rwlock_destroy(globals.db_hash_rwlock);
|
switch_thread_rwlock_destroy(globals.db_hash_rwlock);
|
||||||
switch_thread_rwlock_destroy(globals.limit_hash_rwlock);
|
switch_thread_rwlock_destroy(globals.limit_hash_rwlock);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue