static int unload_module(void)
{
ast_cdr_unregister(name);
- usleep(1);
if (AST_RWLIST_WRLOCK(&odbc_tables)) {
ast_cdr_register(name, ast_module_info->description, odbc_log);
ast_log(LOG_ERROR, "Unable to lock column list. Unload failed.\n");
static int unload_module(void)
{
struct columns *current;
+
ast_cdr_unregister(name);
- /* Give all threads time to finish */
- usleep(1);
PQfinish(conn);
if (pghostname)
AST_RWLIST_TRAVERSE_SAFE_BEGIN(&be_list, i, list) {
if (!strcasecmp(name, i->name)) {
AST_RWLIST_REMOVE_CURRENT(list);
- ast_verb(2, "Unregistered '%s' CDR backend\n", name);
- ast_free(i);
break;
}
}
AST_RWLIST_TRAVERSE_SAFE_END;
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)