From: Matthew Jordan Date: Wed, 3 Oct 2012 17:25:36 +0000 (+0000) Subject: Destroy the generic_monitors container after the core_instances in ccss X-Git-Tag: 10.10.0-rc1~15 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6a01c82cca83171f3d3394b0954a7a4f14cc4edf;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/10@374300 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/main/ccss.c b/main/ccss.c index e1323e7098..5e8639d6d1 100644 --- a/main/ccss.c +++ b/main/ccss.c @@ -4499,14 +4499,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 core instances must be destroyed prior to the 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)