From 59231cde161429a1ac6efc7710075a4be001bee4 Mon Sep 17 00:00:00 2001
From: Anthony Minessale <anthm@freeswitch.org>
Date: Thu, 5 Sep 2013 04:09:53 +0500
Subject: [PATCH] FS-5747 move reloadxml event outside of mutex

---
 src/switch_xml.c | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/src/switch_xml.c b/src/switch_xml.c
index d82435dd3f..de171a933e 100644
--- a/src/switch_xml.c
+++ b/src/switch_xml.c
@@ -2244,6 +2244,7 @@ SWITCH_DECLARE(switch_status_t) switch_xml_set_open_root_function(switch_xml_ope
 SWITCH_DECLARE(switch_xml_t) switch_xml_open_root(uint8_t reload, const char **err)
 {
 	switch_xml_t root = NULL;
+	switch_event_t *event;
 
 	switch_mutex_lock(XML_LOCK);
 
@@ -2252,6 +2253,15 @@ SWITCH_DECLARE(switch_xml_t) switch_xml_open_root(uint8_t reload, const char **e
 	}
 	switch_mutex_unlock(XML_LOCK);
 
+
+	if (root) {
+		if (switch_event_create(&event, SWITCH_EVENT_RELOADXML) == SWITCH_STATUS_SUCCESS) {
+			if (switch_event_fire(&event) != SWITCH_STATUS_SUCCESS) {
+				switch_event_destroy(&event);
+			}
+		}
+	}
+
 	return root;
 }
 
@@ -2288,12 +2298,6 @@ SWITCH_DECLARE_NONSTD(switch_xml_t) __switch_xml_open_root(uint8_t reload, const
 	}
 
 	if (errcnt == 0) {
-		switch_event_t *event;
-		if (switch_event_create(&event, SWITCH_EVENT_RELOADXML) == SWITCH_STATUS_SUCCESS) {
-			if (switch_event_fire(&event) != SWITCH_STATUS_SUCCESS) {
-				switch_event_destroy(&event);
-			}
-		}
 		r = switch_xml_root();
 	}