From: Matthew Jordan Date: Wed, 3 Oct 2012 18:58:45 +0000 (+0000) Subject: Destroy the generic_monitors container after the core_instances in ccss X-Git-Tag: 1.8.18.0-rc1~14 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=aa0cfe5035bf49c622d5eb4cf367d3d54b6ccb19;p=thirdparty%2Fasterisk.git Destroy the generic_monitors container after the core_instances in ccss For each item in core_instances disposed of in the shutdown of ccss, any generic monitor instances referenced by the objects will be removed from generic_monitors during their destruction. Hilarity ensues if generic_monitors no longer exists. Thanks to the Asterisk Test Suite's generic_ccss test for complaining loudly when it ran into this. git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@374316 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/main/ccss.c b/main/ccss.c index 69bcd154fa..d7f62cc261 100644 --- a/main/ccss.c +++ b/main/ccss.c @@ -4324,14 +4324,15 @@ static void cc_shutdown(void) if (cc_core_taskprocessor) { cc_core_taskprocessor = ast_taskprocessor_unreference(cc_core_taskprocessor); } - if (generic_monitors) { - ao2_t_ref(generic_monitors, -1, "Unref generic_monitor container in cc_shutdown"); - generic_monitors = NULL; - } + /* Note that cc_core_instances must be disposed of prior to generic_monitors */ if (cc_core_instances) { ao2_t_ref(cc_core_instances, -1, "Unref cc_core_instances container in cc_shutdown"); cc_core_instances = NULL; } + if (generic_monitors) { + ao2_t_ref(generic_monitors, -1, "Unref generic_monitor container in cc_shutdown"); + generic_monitors = NULL; + } } int ast_cc_init(void)