Merged revisions 305603 via svnmerge from
authorBrett Bryant <bbryant@digium.com>
Tue, 1 Feb 2011 19:27:23 +0000 (19:27 +0000)
committerBrett Bryant <bbryant@digium.com>
Tue, 1 Feb 2011 19:27:23 +0000 (19:27 +0000)
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: https://origsvn.digium.com/svn/asterisk/trunk@305604 65c4cc65-6c06-0410-ace0-fbb531ad65f3

cel/cel_pgsql.c

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