From 02077a8caed12d662a268f15604f5a38f5f6b05c Mon Sep 17 00:00:00 2001 From: Russell Bryant <russell@russellbryant.com> Date: Sun, 23 Jul 2006 04:58:56 +0000 Subject: [PATCH] take the advice of an XXX comment and use an atomic operation to decrement a variable. Also, change a use of strdup to ast_strdup and remove a duplicated error message. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@38108 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- cli.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/cli.c b/cli.c index 2844b5ca3f..b12f0684d7 100644 --- a/cli.c +++ b/cli.c @@ -1177,7 +1177,7 @@ static char *parse_args(const char *s, int *argc, char *argv[], int max, int *tr if (s == NULL) /* invalid, though! */ return NULL; /* make a copy to store the parsed string */ - if (!(dup = strdup(s))) + if (!(dup = ast_strdup(s))) return NULL; cur = dup; @@ -1350,10 +1350,8 @@ int ast_cli_command(int fd, const char *s) char *dup; int tws; - if (!(dup = parse_args(s, &x, argv, sizeof(argv) / sizeof(argv[0]), &tws))) { - ast_log(LOG_ERROR, "Memory allocation failure\n"); + if (!(dup = parse_args(s, &x, argv, sizeof(argv) / sizeof(argv[0]), &tws))) return -1; - } /* We need at least one entry, or ignore */ if (x > 0) { @@ -1373,11 +1371,8 @@ int ast_cli_command(int fd, const char *s) } } else ast_cli(fd, "No such command '%s' (type 'help' for help)\n", find_best(argv)); - if (e) { - AST_LIST_LOCK(&helpers); - e->inuse--; /* XXX here an atomic dec would suffice */ - AST_LIST_UNLOCK(&helpers); - } + if (e) + ast_atomic_fetchadd_int(&e->inuse, -1); } free(dup); -- GitLab