dect
/
asterisk
Archived
13
0
Fork 0

Merged revisions 305603 via svnmerge from

https://origsvn.digium.com/svn/asterisk/branches/1.8

........
  r305603 | bbryant | 2011-02-01 14:23:20 -0500 (Tue, 01 Feb 2011) | 4 lines
  
  Add a possible solution to a customer problem with reloading cel_pgsql.so
  quickly.
........


git-svn-id: http://svn.digium.com/svn/asterisk/trunk@305604 f38db490-d61c-443f-a65b-d21fe96a405b
This commit is contained in:
bbryant 2011-02-01 19:27:23 +00:00
parent 1c24dbd919
commit 4c90fe7898
1 changed files with 9 additions and 1 deletions

View File

@ -337,31 +337,39 @@ static void pgsql_log(const struct ast_event *event, void *userdata)
static int my_unload_module(void) static int my_unload_module(void)
{ {
struct columns *current; struct columns *current;
AST_RWLIST_WRLOCK(&psql_columns);
if (event_sub) { if (event_sub) {
event_sub = ast_event_unsubscribe(event_sub); event_sub = ast_event_unsubscribe(event_sub);
event_sub = NULL;
} }
if (conn) { if (conn) {
PQfinish(conn); PQfinish(conn);
conn = NULL;
} }
if (pghostname) { if (pghostname) {
ast_free(pghostname); ast_free(pghostname);
pghostname = NULL;
} }
if (pgdbname) { if (pgdbname) {
ast_free(pgdbname); ast_free(pgdbname);
pgdbname = NULL;
} }
if (pgdbuser) { if (pgdbuser) {
ast_free(pgdbuser); ast_free(pgdbuser);
pgdbuser = NULL;
} }
if (pgpassword) { if (pgpassword) {
ast_free(pgpassword); ast_free(pgpassword);
pgpassword = NULL;
} }
if (pgdbport) { if (pgdbport) {
ast_free(pgdbport); ast_free(pgdbport);
pgdbport = NULL;
} }
if (table) { if (table) {
ast_free(table); ast_free(table);
table = NULL;
} }
AST_RWLIST_WRLOCK(&psql_columns);
while ((current = AST_RWLIST_REMOVE_HEAD(&psql_columns, list))) { while ((current = AST_RWLIST_REMOVE_HEAD(&psql_columns, list))) {
ast_free(current); ast_free(current);
} }