From 6a01c82cca83171f3d3394b0954a7a4f14cc4edf Mon Sep 17 00:00:00 2001 From: Matthew Jordan Date: Wed, 3 Oct 2012 17:25:36 +0000 Subject: [PATCH] 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 --- main/ccss.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) 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) -- 2.47.2