aboutsummaryrefslogtreecommitdiffstats
path: root/cdr
diff options
context:
space:
mode:
authorqwell <qwell@f38db490-d61c-443f-a65b-d21fe96a405b>2007-06-20 22:32:57 +0000
committerqwell <qwell@f38db490-d61c-443f-a65b-d21fe96a405b>2007-06-20 22:32:57 +0000
commit724553d96f44628a98336679942a25e58c76f8d3 (patch)
tree6451d5d7273a7eb384a3c14f21f7e1875ee81ab0 /cdr
parent8c86ab11267ce0b1dacdb4cdc1e346a1a95267d6 (diff)
Merged revisions 70554 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r70554 | qwell | 2007-06-20 17:31:35 -0500 (Wed, 20 Jun 2007) | 4 lines Fix a race condition in cdr_pgsql that can occur when reloading the module. Issue 10022, patch by me, with credit to prashant_jois for finding the bug. ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@70555 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'cdr')
-rw-r--r--cdr/cdr_pgsql.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/cdr/cdr_pgsql.c b/cdr/cdr_pgsql.c
index 09df1bfd7..ac0373cb2 100644
--- a/cdr/cdr_pgsql.c
+++ b/cdr/cdr_pgsql.c
@@ -309,8 +309,12 @@ static int unload_module(void)
static int reload(void)
{
+ int res;
+ ast_mutex_lock(&pgsql_lock);
my_unload_module();
- return my_load_module();
+ res = my_load_module();
+ ast_mutex_lock(&pgsql_lock);
+ return res;
}
AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "PostgreSQL CDR Backend",