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
This commit is contained in:
David M. Lee
2013-05-22 19:15:16 +00:00
parent 1355e5d34f
commit 8a5a09e62c

View File

@@ -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;