[asterisk-commits] kmoore: branch 1.8 r397106 - in /branches/1.8/main: astfd.c threadstorage.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Tue Aug 20 10:26:26 CDT 2013


Author: kmoore
Date: Tue Aug 20 10:26:24 2013
New Revision: 397106

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=397106
Log:
Unregister CLI commands on exit

This patch ensures that CLI commands enabled by DEBUG_FD_LEAKS and
DEBUG_THREADLOCALS are cleaned up properly on exit.

(closes issue ASTERISK-22238)
Reported by: Corey Farrell
Tested by: Corey Farrell
Patches:
    debug_cli_unregister.patch uploaded by Corey Farrell

Modified:
    branches/1.8/main/astfd.c
    branches/1.8/main/threadstorage.c

Modified: branches/1.8/main/astfd.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.8/main/astfd.c?view=diff&rev=397106&r1=397105&r2=397106
==============================================================================
--- branches/1.8/main/astfd.c (original)
+++ branches/1.8/main/astfd.c Tue Aug 20 10:26:24 2013
@@ -274,8 +274,14 @@
 
 static struct ast_cli_entry cli_show_fd = AST_CLI_DEFINE(handle_show_fd, "Show open file descriptors");
 
+static void fd_shutdown(void)
+{
+	ast_cli_unregister(&cli_show_fd);
+}
+
 int ast_fd_init(void)
 {
+	ast_register_atexit(fd_shutdown);
 	return ast_cli_register(&cli_show_fd);
 }
 

Modified: branches/1.8/main/threadstorage.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.8/main/threadstorage.c?view=diff&rev=397106&r1=397105&r2=397106
==============================================================================
--- branches/1.8/main/threadstorage.c (original)
+++ branches/1.8/main/threadstorage.c Tue Aug 20 10:26:24 2013
@@ -249,10 +249,16 @@
 	AST_CLI_DEFINE(handle_cli_threadstorage_show_summary,     "Summarize outstanding memory allocations")
 };
 
+static void threadstorage_shutdown(void)
+{
+	ast_cli_unregister_multiple(cli, ARRAY_LEN(cli));
+}
+
 void threadstorage_init(void)
 {
 	pthread_mutex_init(&threadstoragelock, NULL);
 	ast_cli_register_multiple(cli, ARRAY_LEN(cli));
+	ast_register_atexit(threadstorage_shutdown);
 }
 
 #endif /* !defined(DEBUG_THREADLOCALS) */




More information about the asterisk-commits mailing list