core: Merge malloc_trim patch

We've had multiple opportunities where Richard Mudgett's
malloc_trim patch has been useful. Let's get it
pushed up to gerrit and merged.

Since malloc_trim is only available in libc, an entry is
added to configure.ac to create a definition for
HAVE_MALLOC_TRIM.

Change-Id: Ia38308c550149d9d6eae4ca414a649957de9700c
This commit is contained in:
Chris-Savinovich
2018-12-03 14:01:01 -06:00
committed by Chris Savinovich
parent a2a8a41db3
commit 1f09c61804
4 changed files with 38 additions and 2 deletions

View File

@@ -1788,6 +1788,34 @@ static char *handle_cli_wait_fullybooted(struct ast_cli_entry *e, int cmd, struc
return CLI_SUCCESS;
}
#ifdef HAVE_MALLOC_TRIM
/* BUGBUG malloc_trim() is a libc specific function. Non-portable. */
static char *handle_cli_malloc_trim(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
{
extern int malloc_trim(size_t __pad) __THROW;
switch (cmd) {
case CLI_INIT:
e->command = "malloc trim";
e->usage =
"Usage: malloc trim\n"
" Try to give excess memory back to the OS.\n";
return NULL;
case CLI_GENERATE:
return NULL;
}
if (malloc_trim(0)) {
ast_cli(a->fd, "Returned some memory to the OS.\n");
} else {
ast_cli(a->fd, "No memory returned to the OS.\n");
}
return CLI_SUCCESS;
}
#endif
static char *handle_help(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a);
static struct ast_cli_entry cli_cli[] = {
@@ -1833,6 +1861,11 @@ static struct ast_cli_entry cli_cli[] = {
AST_CLI_DEFINE(handle_cli_check_permissions, "Try a permissions config for a user"),
AST_CLI_DEFINE(handle_cli_wait_fullybooted, "Wait for Asterisk to be fully booted"),
#ifdef HAVE_MALLOC_TRIM
AST_CLI_DEFINE(handle_cli_malloc_trim, "Return excess memory to the OS"),
#endif
};
/*!