From ac619fd0e89924e5eb022d0fb6df4e43cb483042 Mon Sep 17 00:00:00 2001
From: Marc Olivier Chouinard <mochouinard@moctel.com>
Date: Fri, 22 Apr 2011 01:42:47 -0400
Subject: [PATCH] mod_callcenter: Possible fix on unload module freeze when an
 member uuid changed or is gone

---
 src/mod/applications/mod_callcenter/mod_callcenter.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/mod/applications/mod_callcenter/mod_callcenter.c b/src/mod/applications/mod_callcenter/mod_callcenter.c
index 0810abb49b..e363fa8fd1 100644
--- a/src/mod/applications/mod_callcenter/mod_callcenter.c
+++ b/src/mod/applications/mod_callcenter/mod_callcenter.c
@@ -2205,10 +2205,6 @@ void *SWITCH_THREAD_FUNC cc_member_thread_run(switch_thread_t *thread, void *obj
 	switch_core_session_t *member_session = switch_core_session_locate(m->member_session_uuid);
 	switch_channel_t *member_channel = NULL;
 
-	switch_mutex_lock(globals.mutex);
-	globals.threads++;
-	switch_mutex_unlock(globals.mutex);
-
 	if (member_session) {
 		member_channel = switch_core_session_get_channel(member_session);
 	} else {
@@ -2216,6 +2212,10 @@ void *SWITCH_THREAD_FUNC cc_member_thread_run(switch_thread_t *thread, void *obj
 		return NULL;
 	}
 
+	switch_mutex_lock(globals.mutex);
+	globals.threads++;
+	switch_mutex_unlock(globals.mutex);
+
 	while(switch_channel_ready(member_channel) && m->running && globals.running) {
 		cc_queue_t *queue = NULL;