Remove unnecessary usleep() from a couple of module unload callbacks.

In passing, also tweak cdr_unregister() to hold the list lock a bit less time.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@202109 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Russell Bryant
2009-06-20 14:09:40 +00:00
parent 55c6789f74
commit b390327dd7
3 changed files with 6 additions and 5 deletions

View File

@@ -663,7 +663,6 @@ early_release:
static int unload_module(void) static int unload_module(void)
{ {
ast_cdr_unregister(name); ast_cdr_unregister(name);
usleep(1);
if (AST_RWLIST_WRLOCK(&odbc_tables)) { if (AST_RWLIST_WRLOCK(&odbc_tables)) {
ast_cdr_register(name, ast_module_info->description, odbc_log); ast_cdr_register(name, ast_module_info->description, odbc_log);
ast_log(LOG_ERROR, "Unable to lock column list. Unload failed.\n"); ast_log(LOG_ERROR, "Unable to lock column list. Unload failed.\n");

View File

@@ -331,10 +331,9 @@ static int pgsql_log(struct ast_cdr *cdr)
static int unload_module(void) static int unload_module(void)
{ {
struct columns *current; struct columns *current;
ast_cdr_unregister(name); ast_cdr_unregister(name);
/* Give all threads time to finish */
usleep(1);
PQfinish(conn); PQfinish(conn);
if (pghostname) if (pghostname)

View File

@@ -148,13 +148,16 @@ void ast_cdr_unregister(const char *name)
AST_RWLIST_TRAVERSE_SAFE_BEGIN(&be_list, i, list) { AST_RWLIST_TRAVERSE_SAFE_BEGIN(&be_list, i, list) {
if (!strcasecmp(name, i->name)) { if (!strcasecmp(name, i->name)) {
AST_RWLIST_REMOVE_CURRENT(list); AST_RWLIST_REMOVE_CURRENT(list);
ast_verb(2, "Unregistered '%s' CDR backend\n", name);
ast_free(i);
break; break;
} }
} }
AST_RWLIST_TRAVERSE_SAFE_END; AST_RWLIST_TRAVERSE_SAFE_END;
AST_RWLIST_UNLOCK(&be_list); AST_RWLIST_UNLOCK(&be_list);
if (i) {
ast_verb(2, "Unregistered '%s' CDR backend\n", name);
ast_free(i);
}
} }
int ast_cdr_isset_unanswered(void) int ast_cdr_isset_unanswered(void)