Author: coreyfarrell Date: Thu Mar 26 17:24:26 2015 New Revision: 433498 URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=433498 Log: Replace most uses of ast_register_atexit with ast_register_cleanup.
Since 'core stop now' and 'core restart now' do not stop modules, it is unsafe for most of the core to run cleanups. Originally all cleanups used ast_register_atexit, and were only changed when it was shown to be unsafe. ast_register_atexit is now used only when absolutely required to prevent corruption and close child processes. Exceptions that need to use ast_register_atexit: * CDR: Flush records. * res_musiconhold: Kill external applications. * AstDB: Close the DB. * canary_exit: Kill canary process. ASTERISK-24142 #close Reported by: David Brillert ASTERISK-24683 #close Reported by: Peter Katzmann ASTERISK-24805 #close Reported by: Badalian Vyacheslav ASTERISK-24881 #close Reported by: Corey Farrell Review: https://reviewboard.asterisk.org/r/4500/ Review: https://reviewboard.asterisk.org/r/4501/ ........ Merged revisions 433495 from http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged revisions 433497 from http://svn.asterisk.org/svn/asterisk/branches/13 Modified: trunk/ (props changed) trunk/include/asterisk.h trunk/main/aoc.c trunk/main/asterisk.c trunk/main/astfd.c trunk/main/astmm.c trunk/main/astobj2.c trunk/main/astobj2_container.c trunk/main/bridge.c trunk/main/ccss.c trunk/main/cel.c trunk/main/channel.c trunk/main/cli.c trunk/main/codec.c trunk/main/config.c trunk/main/config_options.c trunk/main/core_local.c trunk/main/data.c trunk/main/dnsmgr.c trunk/main/features.c trunk/main/file.c trunk/main/format.c trunk/main/format_cache.c trunk/main/http.c trunk/main/image.c trunk/main/indications.c trunk/main/manager.c trunk/main/manager_bridges.c trunk/main/manager_channels.c trunk/main/manager_endpoints.c trunk/main/manager_mwi.c trunk/main/manager_system.c trunk/main/message.c trunk/main/pbx.c trunk/main/pickup.c trunk/main/rtp_engine.c trunk/main/sorcery.c trunk/main/sounds_index.c trunk/main/stasis.c trunk/main/stun.c trunk/main/taskprocessor.c trunk/main/threadstorage.c trunk/main/timing.c trunk/main/udptl.c trunk/main/utils.c trunk/main/xmldoc.c Propchange: trunk/ ------------------------------------------------------------------------------ Binary property 'branch-13-merged' - no diff available. Modified: trunk/include/asterisk.h URL: http://svnview.digium.com/svn/asterisk/trunk/include/asterisk.h?view=diff&rev=433498&r1=433497&r2=433498 ============================================================================== --- trunk/include/asterisk.h (original) +++ trunk/include/asterisk.h Thu Mar 26 17:24:26 2015 @@ -86,6 +86,11 @@ * * \retval 0 on success. * \retval -1 on error. + * + * \note This function should be rarely used in situations where + * something must be shutdown to avoid corruption, excessive data + * loss, or when external programs must be stopped. All other + * cleanup in the core should use ast_register_cleanup. */ int ast_register_atexit(void (*func)(void)); Modified: trunk/main/aoc.c URL: http://svnview.digium.com/svn/asterisk/trunk/main/aoc.c?view=diff&rev=433498&r1=433497&r2=433498 ============================================================================== --- trunk/main/aoc.c (original) +++ trunk/main/aoc.c Thu Mar 26 17:24:26 2015 @@ -2011,6 +2011,6 @@ STASIS_MESSAGE_TYPE_INIT(aoc_d_type); STASIS_MESSAGE_TYPE_INIT(aoc_e_type); - ast_register_atexit(aoc_shutdown); + ast_register_cleanup(aoc_shutdown); return ast_cli_register_multiple(aoc_cli, ARRAY_LEN(aoc_cli)); } Modified: trunk/main/asterisk.c URL: http://svnview.digium.com/svn/asterisk/trunk/main/asterisk.c?view=diff&rev=433498&r1=433497&r2=433498 ============================================================================== --- trunk/main/asterisk.c (original) +++ trunk/main/asterisk.c Thu Mar 26 17:24:26 2015 @@ -4684,7 +4684,7 @@ ast_lastreloadtime = ast_startuptime = ast_tvnow(); ast_cli_register_multiple(cli_asterisk_shutdown, ARRAY_LEN(cli_asterisk_shutdown)); ast_cli_register_multiple(cli_asterisk, ARRAY_LEN(cli_asterisk)); - ast_register_atexit(main_atexit); + ast_register_cleanup(main_atexit); run_startup_commands(); Modified: trunk/main/astfd.c URL: http://svnview.digium.com/svn/asterisk/trunk/main/astfd.c?view=diff&rev=433498&r1=433497&r2=433498 ============================================================================== --- trunk/main/astfd.c (original) +++ trunk/main/astfd.c Thu Mar 26 17:24:26 2015 @@ -281,7 +281,7 @@ int ast_fd_init(void) { - ast_register_atexit(fd_shutdown); + ast_register_cleanup(fd_shutdown); return ast_cli_register(&cli_show_fd); } Modified: trunk/main/astmm.c URL: http://svnview.digium.com/svn/asterisk/trunk/main/astmm.c?view=diff&rev=433498&r1=433497&r2=433498 ============================================================================== --- trunk/main/astmm.c (original) +++ trunk/main/astmm.c Thu Mar 26 17:24:26 2015 @@ -1493,7 +1493,7 @@ ast_log(LOG_ERROR, "Could not open malloc debug log file: %s\n", filename); } - ast_register_atexit(mm_atexit_ast); + ast_register_cleanup(mm_atexit_ast); } #endif /* defined(__AST_DEBUG_MALLOC) */ Modified: trunk/main/astobj2.c URL: http://svnview.digium.com/svn/asterisk/trunk/main/astobj2.c?view=diff&rev=433498&r1=433497&r2=433498 ============================================================================== --- trunk/main/astobj2.c (original) +++ trunk/main/astobj2.c Thu Mar 26 17:24:26 2015 @@ -914,7 +914,7 @@ ast_cli_register_multiple(cli_astobj2, ARRAY_LEN(cli_astobj2)); #endif /* defined(AO2_DEBUG) */ - ast_register_atexit(astobj2_cleanup); + ast_register_cleanup(astobj2_cleanup); return 0; } Modified: trunk/main/astobj2_container.c URL: http://svnview.digium.com/svn/asterisk/trunk/main/astobj2_container.c?view=diff&rev=433498&r1=433497&r2=433498 ============================================================================== --- trunk/main/astobj2_container.c (original) +++ trunk/main/astobj2_container.c Thu Mar 26 17:24:26 2015 @@ -1211,7 +1211,7 @@ } ast_cli_register_multiple(cli_astobj2, ARRAY_LEN(cli_astobj2)); - ast_register_atexit(container_cleanup); + ast_register_cleanup(container_cleanup); #endif /* defined(AO2_DEBUG) */ return 0; Modified: trunk/main/bridge.c URL: http://svnview.digium.com/svn/asterisk/trunk/main/bridge.c?view=diff&rev=433498&r1=433497&r2=433498 ============================================================================== --- trunk/main/bridge.c (original) +++ trunk/main/bridge.c Thu Mar 26 17:24:26 2015 @@ -5320,29 +5320,19 @@ /*! * \internal - * \brief Shutdown the bridging system. Stuff to always do. - * \since 12.0.0 + * \brief Shutdown the bridging system. Stuff to do on graceful shutdown. + * \since 13.3.0 * * \return Nothing */ -static void bridge_shutdown(void) +static void bridge_cleanup(void) { ast_manager_unregister("BridgeTechnologyList"); ast_manager_unregister("BridgeTechnologySuspend"); ast_manager_unregister("BridgeTechnologyUnsuspend"); ast_cli_unregister_multiple(bridge_cli, ARRAY_LEN(bridge_cli)); ao2_container_unregister("bridges"); -} - -/*! - * \internal - * \brief Shutdown the bridging system. More stuff to do on graceful shutdown. - * \since 13.3.0 - * - * \return Nothing - */ -static void bridge_cleanup(void) -{ + ao2_cleanup(bridges); bridges = NULL; ao2_cleanup(bridge_manager); @@ -5352,7 +5342,6 @@ int ast_bridging_init(void) { ast_register_cleanup(bridge_cleanup); - ast_register_atexit(bridge_shutdown); if (ast_stasis_bridging_init()) { return -1; Modified: trunk/main/ccss.c URL: http://svnview.digium.com/svn/asterisk/trunk/main/ccss.c?view=diff&rev=433498&r1=433497&r2=433498 ============================================================================== --- trunk/main/ccss.c (original) +++ trunk/main/ccss.c Thu Mar 26 17:24:26 2015 @@ -4688,7 +4688,7 @@ initialize_cc_devstate_map(); res |= ast_devstate_prov_add("ccss", ccss_device_state); - ast_register_atexit(cc_shutdown); + ast_register_cleanup(cc_shutdown); return res; } Modified: trunk/main/cel.c URL: http://svnview.digium.com/svn/asterisk/trunk/main/cel.c?view=diff&rev=433498&r1=433497&r2=433498 ============================================================================== --- trunk/main/cel.c (original) +++ trunk/main/cel.c Thu Mar 26 17:24:26 2015 @@ -1513,10 +1513,7 @@ destroy_routes(); destroy_subscriptions(); STASIS_MESSAGE_TYPE_CLEANUP(cel_generic_type); -} - -static void cel_engine_atexit(void) -{ + ast_cli_unregister(&cli_status); aco_info_destroy(&cel_cfg_info); ao2_global_obj_release(cel_configs); @@ -1525,12 +1522,6 @@ ao2_global_obj_release(cel_backends); } -static void cel_engine_abort(void) -{ - cel_engine_cleanup(); - cel_engine_atexit(); -} - /*! * \brief Create the Stasis subscriptions for CEL */ @@ -1714,7 +1705,7 @@ ao2_global_obj_replace_unref(cel_linkedids, container); ao2_cleanup(container); if (!container) { - cel_engine_abort(); + cel_engine_cleanup(); return -1; } @@ -1723,17 +1714,17 @@ ao2_global_obj_replace_unref(cel_dialstatus_store, container); ao2_cleanup(container); if (!container) { - cel_engine_abort(); + cel_engine_cleanup(); return -1; } if (STASIS_MESSAGE_TYPE_INIT(cel_generic_type)) { - cel_engine_abort(); + cel_engine_cleanup(); return -1; } if (ast_cli_register(&cli_status)) { - cel_engine_abort(); + cel_engine_cleanup(); return -1; } @@ -1741,12 +1732,12 @@ ao2_global_obj_replace_unref(cel_backends, container); ao2_cleanup(container); if (!container) { - cel_engine_abort(); + cel_engine_cleanup(); return -1; } if (aco_info_init(&cel_cfg_info)) { - cel_engine_abort(); + cel_engine_cleanup(); return -1; } @@ -1759,7 +1750,7 @@ struct cel_config *cel_cfg = cel_config_alloc(); if (!cel_cfg) { - cel_engine_abort(); + cel_engine_cleanup(); return -1; } @@ -1772,16 +1763,15 @@ } if (create_subscriptions()) { - cel_engine_abort(); + cel_engine_cleanup(); return -1; } if (ast_cel_check_enabled() && create_routes()) { - cel_engine_abort(); - return -1; - } - - ast_register_atexit(cel_engine_atexit); + cel_engine_cleanup(); + return -1; + } + ast_register_cleanup(cel_engine_cleanup); return 0; } Modified: trunk/main/channel.c URL: http://svnview.digium.com/svn/asterisk/trunk/main/channel.c?view=diff&rev=433498&r1=433497&r2=433498 ============================================================================== --- trunk/main/channel.c (original) +++ trunk/main/channel.c Thu Mar 26 17:24:26 2015 @@ -7645,7 +7645,7 @@ ast_plc_reload(); - ast_register_atexit(channels_shutdown); + ast_register_cleanup(channels_shutdown); } Modified: trunk/main/cli.c URL: http://svnview.digium.com/svn/asterisk/trunk/main/cli.c?view=diff&rev=433498&r1=433497&r2=433498 ============================================================================== --- trunk/main/cli.c (original) +++ trunk/main/cli.c Thu Mar 26 17:24:26 2015 @@ -2026,7 +2026,7 @@ void ast_builtins_init(void) { ast_cli_register_multiple(cli_cli, ARRAY_LEN(cli_cli)); - ast_register_atexit(cli_shutdown); + ast_register_cleanup(cli_shutdown); } /*! Modified: trunk/main/codec.c URL: http://svnview.digium.com/svn/asterisk/trunk/main/codec.c?view=diff&rev=433498&r1=433497&r2=433498 ============================================================================== --- trunk/main/codec.c (original) +++ trunk/main/codec.c Thu Mar 26 17:24:26 2015 @@ -245,7 +245,7 @@ } ast_cli_register_multiple(codec_cli, ARRAY_LEN(codec_cli)); - ast_register_atexit(codec_shutdown); + ast_register_cleanup(codec_shutdown); return 0; } Modified: trunk/main/config.c URL: http://svnview.digium.com/svn/asterisk/trunk/main/config.c?view=diff&rev=433498&r1=433497&r2=433498 ============================================================================== --- trunk/main/config.c (original) +++ trunk/main/config.c Thu Mar 26 17:24:26 2015 @@ -3836,7 +3836,7 @@ int register_config_cli(void) { ast_cli_register_multiple(cli_config, ARRAY_LEN(cli_config)); - ast_register_atexit(config_shutdown); + ast_register_cleanup(config_shutdown); return 0; } Modified: trunk/main/config_options.c URL: http://svnview.digium.com/svn/asterisk/trunk/main/config_options.c?view=diff&rev=433498&r1=433497&r2=433498 ============================================================================== --- trunk/main/config_options.c (original) +++ trunk/main/config_options.c Thu Mar 26 17:24:26 2015 @@ -1281,7 +1281,7 @@ int aco_init(void) { #ifdef AST_XML_DOCS - ast_register_atexit(aco_deinit); + ast_register_cleanup(aco_deinit); if (!(xmldocs = ast_xmldoc_build_documentation("configInfo"))) { ast_log(LOG_ERROR, "Couldn't build config documentation\n"); return -1; Modified: trunk/main/core_local.c URL: http://svnview.digium.com/svn/asterisk/trunk/main/core_local.c?view=diff&rev=433498&r1=433497&r2=433498 ============================================================================== --- trunk/main/core_local.c (original) +++ trunk/main/core_local.c Thu Mar 26 17:24:26 2015 @@ -1006,14 +1006,6 @@ ast_manager_unregister("LocalOptimizeAway"); ast_channel_unregister(&local_tech); - it = ao2_iterator_init(locals, 0); - while ((p = ao2_iterator_next(&it))) { - if (p->base.owner) { - ast_softhangup(p->base.owner, AST_SOFTHANGUP_APPUNLOAD); - } - ao2_ref(p, -1); - } - ao2_iterator_destroy(&it); ao2_ref(locals, -1); locals = NULL; @@ -1063,6 +1055,6 @@ ast_cli_register_multiple(cli_local, ARRAY_LEN(cli_local)); ast_manager_register_xml_core("LocalOptimizeAway", EVENT_FLAG_SYSTEM|EVENT_FLAG_CALL, manager_optimize_away); - ast_register_atexit(local_shutdown); + ast_register_cleanup(local_shutdown); return 0; } Modified: trunk/main/data.c URL: http://svnview.digium.com/svn/asterisk/trunk/main/data.c?view=diff&rev=433498&r1=433497&r2=433498 ============================================================================== --- trunk/main/data.c (original) +++ trunk/main/data.c Thu Mar 26 17:24:26 2015 @@ -3342,7 +3342,7 @@ AST_TEST_REGISTER(test_data_get); - ast_register_atexit(data_shutdown); + ast_register_cleanup(data_shutdown); return res; } Modified: trunk/main/dnsmgr.c URL: http://svnview.digium.com/svn/asterisk/trunk/main/dnsmgr.c?view=diff&rev=433498&r1=433497&r2=433498 ============================================================================== --- trunk/main/dnsmgr.c (original) +++ trunk/main/dnsmgr.c Thu Mar 26 17:24:26 2015 @@ -438,7 +438,7 @@ ast_cli_register(&cli_status); ast_cli_register(&cli_refresh); - ast_register_atexit(dnsmgr_shutdown); + ast_register_cleanup(dnsmgr_shutdown); return do_reload(1); } Modified: trunk/main/features.c URL: http://svnview.digium.com/svn/asterisk/trunk/main/features.c?view=diff&rev=433498&r1=433497&r2=433498 ============================================================================== --- trunk/main/features.c (original) +++ trunk/main/features.c Thu Mar 26 17:24:26 2015 @@ -1184,7 +1184,7 @@ if (res) { features_shutdown(); } else { - ast_register_atexit(features_shutdown); + ast_register_cleanup(features_shutdown); } return res; Modified: trunk/main/file.c URL: http://svnview.digium.com/svn/asterisk/trunk/main/file.c?view=diff&rev=433498&r1=433497&r2=433498 ============================================================================== --- trunk/main/file.c (original) +++ trunk/main/file.c Thu Mar 26 17:24:26 2015 @@ -1780,6 +1780,6 @@ STASIS_MESSAGE_TYPE_INIT(ast_format_register_type); STASIS_MESSAGE_TYPE_INIT(ast_format_unregister_type); ast_cli_register_multiple(cli_file, ARRAY_LEN(cli_file)); - ast_register_atexit(file_shutdown); + ast_register_cleanup(file_shutdown); return 0; } Modified: trunk/main/format.c URL: http://svnview.digium.com/svn/asterisk/trunk/main/format.c?view=diff&rev=433498&r1=433497&r2=433498 ============================================================================== --- trunk/main/format.c (original) +++ trunk/main/format.c Thu Mar 26 17:24:26 2015 @@ -126,7 +126,7 @@ return -1; } - ast_register_atexit(format_shutdown); + ast_register_cleanup(format_shutdown); return 0; } Modified: trunk/main/format_cache.c URL: http://svnview.digium.com/svn/asterisk/trunk/main/format_cache.c?view=diff&rev=433498&r1=433497&r2=433498 ============================================================================== --- trunk/main/format_cache.c (original) +++ trunk/main/format_cache.c Thu Mar 26 17:24:26 2015 @@ -341,7 +341,7 @@ return -1; } - ast_register_atexit(format_cache_shutdown); + ast_register_cleanup(format_cache_shutdown); return 0; } Modified: trunk/main/http.c URL: http://svnview.digium.com/svn/asterisk/trunk/main/http.c?view=diff&rev=433498&r1=433497&r2=433498 ============================================================================== --- trunk/main/http.c (original) +++ trunk/main/http.c Thu Mar 26 17:24:26 2015 @@ -2338,7 +2338,7 @@ ast_http_uri_link(&statusuri); ast_http_uri_link(&staticuri); ast_cli_register_multiple(cli_http, ARRAY_LEN(cli_http)); - ast_register_atexit(http_shutdown); + ast_register_cleanup(http_shutdown); return __ast_http_load(0); } Modified: trunk/main/image.c URL: http://svnview.digium.com/svn/asterisk/trunk/main/image.c?view=diff&rev=433498&r1=433497&r2=433498 ============================================================================== --- trunk/main/image.c (original) +++ trunk/main/image.c Thu Mar 26 17:24:26 2015 @@ -214,6 +214,6 @@ int ast_image_init(void) { ast_cli_register_multiple(cli_image, ARRAY_LEN(cli_image)); - ast_register_atexit(image_shutdown); + ast_register_cleanup(image_shutdown); return 0; } Modified: trunk/main/indications.c URL: http://svnview.digium.com/svn/asterisk/trunk/main/indications.c?view=diff&rev=433498&r1=433497&r2=433498 ============================================================================== --- trunk/main/indications.c (original) +++ trunk/main/indications.c Thu Mar 26 17:24:26 2015 @@ -1186,7 +1186,7 @@ ast_cli_register_multiple(cli_indications, ARRAY_LEN(cli_indications)); - ast_register_atexit(indications_shutdown); + ast_register_cleanup(indications_shutdown); return 0; } Modified: trunk/main/manager.c URL: http://svnview.digium.com/svn/asterisk/trunk/main/manager.c?view=diff&rev=433498&r1=433497&r2=433498 ============================================================================== --- trunk/main/manager.c (original) +++ trunk/main/manager.c Thu Mar 26 17:24:26 2015 @@ -8621,7 +8621,7 @@ #endif int res; - ast_register_atexit(manager_shutdown); + ast_register_cleanup(manager_shutdown); res = STASIS_MESSAGE_TYPE_INIT(ast_manager_get_generic_type); if (res != 0) { Modified: trunk/main/manager_bridges.c URL: http://svnview.digium.com/svn/asterisk/trunk/main/manager_bridges.c?view=diff&rev=433498&r1=433497&r2=433498 ============================================================================== --- trunk/main/manager_bridges.c (original) +++ trunk/main/manager_bridges.c Thu Mar 26 17:24:26 2015 @@ -591,10 +591,7 @@ { stasis_forward_cancel(topic_forwarder); topic_forwarder = NULL; -} - -static void manager_bridging_shutdown(void) -{ + ast_manager_unregister("BridgeList"); ast_manager_unregister("BridgeInfo"); ast_manager_unregister("BridgeDestroy"); @@ -612,7 +609,6 @@ return 0; } - ast_register_atexit(manager_bridging_shutdown); ast_register_cleanup(manager_bridging_cleanup); manager_topic = ast_manager_get_topic(); @@ -656,7 +652,7 @@ * thing and fail it. */ if (ret) { - manager_bridging_shutdown(); + manager_bridging_cleanup(); return -1; } Modified: trunk/main/manager_channels.c URL: http://svnview.digium.com/svn/asterisk/trunk/main/manager_channels.c?view=diff&rev=433498&r1=433497&r2=433498 ============================================================================== --- trunk/main/manager_channels.c (original) +++ trunk/main/manager_channels.c Thu Mar 26 17:24:26 2015 @@ -1136,7 +1136,7 @@ return -1; } - ast_register_atexit(manager_channels_shutdown); + ast_register_cleanup(manager_channels_shutdown); ret |= stasis_message_router_add_cache_update(message_router, ast_channel_snapshot_type(), channel_snapshot_update, NULL); Modified: trunk/main/manager_endpoints.c URL: http://svnview.digium.com/svn/asterisk/trunk/main/manager_endpoints.c?view=diff&rev=433498&r1=433497&r2=433498 ============================================================================== --- trunk/main/manager_endpoints.c (original) +++ trunk/main/manager_endpoints.c Thu Mar 26 17:24:26 2015 @@ -61,7 +61,7 @@ return 0; } - ast_register_atexit(manager_endpoints_shutdown); + ast_register_cleanup(manager_endpoints_shutdown); endpoint_topic = ast_endpoint_topic_all_cached(); if (!endpoint_topic) { Modified: trunk/main/manager_mwi.c URL: http://svnview.digium.com/svn/asterisk/trunk/main/manager_mwi.c?view=diff&rev=433498&r1=433497&r2=433498 ============================================================================== --- trunk/main/manager_mwi.c (original) +++ trunk/main/manager_mwi.c Thu Mar 26 17:24:26 2015 @@ -176,7 +176,7 @@ return -1; } - ast_register_atexit(manager_mwi_shutdown); + ast_register_cleanup(manager_mwi_shutdown); ret |= stasis_message_router_add(message_router, ast_mwi_state_type(), Modified: trunk/main/manager_system.c URL: http://svnview.digium.com/svn/asterisk/trunk/main/manager_system.c?view=diff&rev=433498&r1=433497&r2=433498 ============================================================================== --- trunk/main/manager_system.c (original) +++ trunk/main/manager_system.c Thu Mar 26 17:24:26 2015 @@ -67,7 +67,7 @@ return -1; } - ast_register_atexit(manager_system_shutdown); + ast_register_cleanup(manager_system_shutdown); /* If somehow we failed to add any routes, just shut down the whole * thing and fail it. Modified: trunk/main/message.c URL: http://svnview.digium.com/svn/asterisk/trunk/main/message.c?view=diff&rev=433498&r1=433497&r2=433498 ============================================================================== --- trunk/main/message.c (original) +++ trunk/main/message.c Thu Mar 26 17:24:26 2015 @@ -1516,7 +1516,7 @@ res |= ast_register_application2(app_msg_send, msg_send_exec, NULL, NULL, NULL); res |= ast_manager_register_xml_core("MessageSend", EVENT_FLAG_MESSAGE, action_messagesend); - ast_register_atexit(message_shutdown); + ast_register_cleanup(message_shutdown); return res; } Modified: trunk/main/pbx.c URL: http://svnview.digium.com/svn/asterisk/trunk/main/pbx.c?view=diff&rev=433498&r1=433497&r2=433498 ============================================================================== --- trunk/main/pbx.c (original) +++ trunk/main/pbx.c Thu Mar 26 17:24:26 2015 @@ -12102,7 +12102,7 @@ int res = 0; int x; - ast_register_atexit(unload_pbx); + ast_register_cleanup(unload_pbx); /* Initialize the PBX */ ast_verb(1, "Asterisk PBX Core Initializing\n"); Modified: trunk/main/pickup.c URL: http://svnview.digium.com/svn/asterisk/trunk/main/pickup.c?view=diff&rev=433498&r1=433497&r2=433498 ============================================================================== --- trunk/main/pickup.c (original) +++ trunk/main/pickup.c Thu Mar 26 17:24:26 2015 @@ -403,7 +403,7 @@ int ast_pickup_init(void) { STASIS_MESSAGE_TYPE_INIT(ast_call_pickup_type); - ast_register_atexit(pickup_shutdown); + ast_register_cleanup(pickup_shutdown); return 0; } Modified: trunk/main/rtp_engine.c URL: http://svnview.digium.com/svn/asterisk/trunk/main/rtp_engine.c?view=diff&rev=433498&r1=433497&r2=433498 ============================================================================== --- trunk/main/rtp_engine.c (original) +++ trunk/main/rtp_engine.c Thu Mar 26 17:24:26 2015 @@ -2092,7 +2092,7 @@ } STASIS_MESSAGE_TYPE_INIT(ast_rtp_rtcp_sent_type); STASIS_MESSAGE_TYPE_INIT(ast_rtp_rtcp_received_type); - ast_register_atexit(rtp_engine_shutdown); + ast_register_cleanup(rtp_engine_shutdown); /* Define all the RTP mime types available */ set_next_mime_type(ast_format_g723, 0, "audio", "G723", 8000); Modified: trunk/main/sorcery.c URL: http://svnview.digium.com/svn/asterisk/trunk/main/sorcery.c?view=diff&rev=433498&r1=433497&r2=433498 ============================================================================== --- trunk/main/sorcery.c (original) +++ trunk/main/sorcery.c Thu Mar 26 17:24:26 2015 @@ -416,16 +416,11 @@ return CMP_MATCH; } -/*! \brief Cleanup function */ -static void sorcery_exit(void) +/*! \brief Cleanup function for graceful shutdowns */ +static void sorcery_cleanup(void) { ast_threadpool_shutdown(threadpool); threadpool = NULL; -} - -/*! \brief Cleanup function for graceful shutdowns */ -static void sorcery_cleanup(void) -{ ao2_cleanup(wizards); wizards = NULL; ao2_cleanup(observers); @@ -507,7 +502,6 @@ observers = ao2_container_alloc_list(AO2_ALLOC_OPT_LOCK_RWLOCK, 0, NULL, NULL); if (!observers) { sorcery_cleanup(); - sorcery_exit(); return -1; } @@ -515,12 +509,10 @@ sorcery_instance_hash, sorcery_instance_cmp); if (!instances) { sorcery_cleanup(); - sorcery_exit(); return -1; } ast_register_cleanup(sorcery_cleanup); - ast_register_atexit(sorcery_exit); return 0; } Modified: trunk/main/sounds_index.c URL: http://svnview.digium.com/svn/asterisk/trunk/main/sounds_index.c?view=diff&rev=433498&r1=433497&r2=433498 ============================================================================== --- trunk/main/sounds_index.c (original) +++ trunk/main/sounds_index.c Thu Mar 26 17:24:26 2015 @@ -322,7 +322,7 @@ return -1; } - ast_register_atexit(sounds_cleanup); + ast_register_cleanup(sounds_cleanup); return 0; } Modified: trunk/main/stasis.c URL: http://svnview.digium.com/svn/asterisk/trunk/main/stasis.c?view=diff&rev=433498&r1=433497&r2=433498 ============================================================================== --- trunk/main/stasis.c (original) +++ trunk/main/stasis.c Thu Mar 26 17:24:26 2015 @@ -1533,16 +1533,11 @@ /*! @} */ -/*! \brief Shutdown function */ -static void stasis_exit(void) +/*! \brief Cleanup function for graceful shutdowns */ +static void stasis_cleanup(void) { ast_threadpool_shutdown(pool); pool = NULL; -} - -/*! \brief Cleanup function for graceful shutdowns */ -static void stasis_cleanup(void) -{ STASIS_MESSAGE_TYPE_CLEANUP(stasis_subscription_change_type); STASIS_MESSAGE_TYPE_CLEANUP(ast_multi_user_event_type); aco_info_destroy(&cfg_info); @@ -1557,7 +1552,6 @@ /* Be sure the types are cleaned up after the message bus */ ast_register_cleanup(stasis_cleanup); - ast_register_atexit(stasis_exit); if (aco_info_init(&cfg_info)) { return -1; Modified: trunk/main/stun.c URL: http://svnview.digium.com/svn/asterisk/trunk/main/stun.c?view=diff&rev=433498&r1=433497&r2=433498 ============================================================================== --- trunk/main/stun.c (original) +++ trunk/main/stun.c Thu Mar 26 17:24:26 2015 @@ -516,5 +516,5 @@ void ast_stun_init(void) { ast_cli_register_multiple(cli_stun, sizeof(cli_stun) / sizeof(struct ast_cli_entry)); - ast_register_atexit(stun_shutdown); -} + ast_register_cleanup(stun_shutdown); +} Modified: trunk/main/taskprocessor.c URL: http://svnview.digium.com/svn/asterisk/trunk/main/taskprocessor.c?view=diff&rev=433498&r1=433497&r2=433498 ============================================================================== --- trunk/main/taskprocessor.c (original) +++ trunk/main/taskprocessor.c Thu Mar 26 17:24:26 2015 @@ -278,7 +278,7 @@ ast_cli_register_multiple(taskprocessor_clis, ARRAY_LEN(taskprocessor_clis)); - ast_register_atexit(tps_shutdown); + ast_register_cleanup(tps_shutdown); return 0; } Modified: trunk/main/threadstorage.c URL: http://svnview.digium.com/svn/asterisk/trunk/main/threadstorage.c?view=diff&rev=433498&r1=433497&r2=433498 ============================================================================== --- trunk/main/threadstorage.c (original) +++ trunk/main/threadstorage.c Thu Mar 26 17:24:26 2015 @@ -258,7 +258,7 @@ { pthread_mutex_init(&threadstoragelock, NULL); ast_cli_register_multiple(cli, ARRAY_LEN(cli)); - ast_register_atexit(threadstorage_shutdown); + ast_register_cleanup(threadstorage_shutdown); } #endif /* !defined(DEBUG_THREADLOCALS) */ Modified: trunk/main/timing.c URL: http://svnview.digium.com/svn/asterisk/trunk/main/timing.c?view=diff&rev=433498&r1=433497&r2=433498 ============================================================================== --- trunk/main/timing.c (original) +++ trunk/main/timing.c Thu Mar 26 17:24:26 2015 @@ -289,7 +289,7 @@ return -1; } - ast_register_atexit(timing_shutdown); + ast_register_cleanup(timing_shutdown); return ast_cli_register_multiple(cli_timing, ARRAY_LEN(cli_timing)); } Modified: trunk/main/udptl.c URL: http://svnview.digium.com/svn/asterisk/trunk/main/udptl.c?view=diff&rev=433498&r1=433497&r2=433498 ============================================================================== --- trunk/main/udptl.c (original) +++ trunk/main/udptl.c Thu Mar 26 17:24:26 2015 @@ -1403,5 +1403,5 @@ ast_cli_register_multiple(cli_udptl, ARRAY_LEN(cli_udptl)); - ast_register_atexit(udptl_shutdown); -} + ast_register_cleanup(udptl_shutdown); +} Modified: trunk/main/utils.c URL: http://svnview.digium.com/svn/asterisk/trunk/main/utils.c?view=diff&rev=433498&r1=433497&r2=433498 ============================================================================== --- trunk/main/utils.c (original) +++ trunk/main/utils.c Thu Mar 26 17:24:26 2015 @@ -2476,7 +2476,7 @@ ast_cli_register_multiple(utils_cli, ARRAY_LEN(utils_cli)); #endif #endif - ast_register_atexit(utils_shutdown); + ast_register_cleanup(utils_shutdown); return 0; } Modified: trunk/main/xmldoc.c URL: http://svnview.digium.com/svn/asterisk/trunk/main/xmldoc.c?view=diff&rev=433498&r1=433497&r2=433498 ============================================================================== --- trunk/main/xmldoc.c (original) +++ trunk/main/xmldoc.c Thu Mar 26 17:24:26 2015 @@ -2962,7 +2962,7 @@ ast_cli_register(&cli_dump_xmldocs); /* register function to be run when asterisk finish. */ - ast_register_atexit(xmldoc_unload_documentation); + ast_register_cleanup(xmldoc_unload_documentation); globbuf.gl_offs = 0; /* slots to reserve in gl_pathv */ -- _____________________________________________________________________ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- svn-commits mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/svn-commits