summaryrefslogtreecommitdiff
path: root/main/app.c
diff options
context:
space:
mode:
authorDavid M. Lee <dlee@digium.com>2013-05-22 19:15:16 +0000
committerDavid M. Lee <dlee@digium.com>2013-05-22 19:15:16 +0000
commit8a5a09e62cd772202178a52383630291cb7ae145 (patch)
tree6dda8ef621cdaa31d582d6ed608d54c1e0963bb5 /main/app.c
parent1355e5d34fa9eee00104e9c507e154ab435537a8 (diff)
Fixed startup race condition which caused occasional stasis_mwi_state_type assertions.
The caching topic (which refers to the message type) was created before the message type. If the initial subscription message gets processed before the type can be initialized, the assertion about using an uninitialized type fires. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@389519 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'main/app.c')
-rw-r--r--main/app.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/main/app.c b/main/app.c
index 0e8a68f7b..1473c06cb 100644
--- a/main/app.c
+++ b/main/app.c
@@ -2735,6 +2735,9 @@ static void app_exit(void)
int app_init(void)
{
+ if (STASIS_MESSAGE_TYPE_INIT(stasis_mwi_state_type) != 0) {
+ return -1;
+ }
mwi_topic_all = stasis_topic_create("stasis_mwi_topic");
if (!mwi_topic_all) {
return -1;
@@ -2743,9 +2746,6 @@ int app_init(void)
if (!mwi_topic_cached) {
return -1;
}
- if (STASIS_MESSAGE_TYPE_INIT(stasis_mwi_state_type) != 0) {
- return -1;
- }
mwi_topic_pool = stasis_topic_pool_create(mwi_topic_all);
if (!mwi_topic_pool) {
return -1;