summaryrefslogtreecommitdiff
path: root/autoservice.c
diff options
context:
space:
mode:
authorKevin P. Fleming <kpfleming@digium.com>2006-02-15 01:48:54 +0000
committerKevin P. Fleming <kpfleming@digium.com>2006-02-15 01:48:54 +0000
commita1e703fb017b7c6b3a7c50336b18ad7cd38cec6e (patch)
tree31e620638e870c97b5d87171b5384501ffe9a14b /autoservice.c
parent5c7bdb22fac8c3436c536ec43222c817a054a35a (diff)
more memory allocation wrapper conversion
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@10141 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'autoservice.c')
-rw-r--r--autoservice.c31
1 files changed, 14 insertions, 17 deletions
diff --git a/autoservice.c b/autoservice.c
index 08cbb4734..0859a4ab1 100644
--- a/autoservice.c
+++ b/autoservice.c
@@ -107,23 +107,20 @@ int ast_autoservice_start(struct ast_channel *chan)
/* XXX if found, we return -1, why ??? */
/* If not, start autoservice on channel */
- if (!as) {
- as = calloc(1, sizeof(struct asent));
- if (as) {
- as->chan = chan;
- AST_LIST_INSERT_HEAD(&aslist, as, list);
- res = 0;
- if (asthread == AST_PTHREADT_NULL) { /* need start the thread */
- if (ast_pthread_create(&asthread, NULL, autoservice_run, NULL)) {
- ast_log(LOG_WARNING, "Unable to create autoservice thread :(\n");
- /* There will only be a single member in the list at this point,
- the one we just added. */
- AST_LIST_REMOVE(&aslist, as, list);
- free(as);
- res = -1;
- } else
- pthread_kill(asthread, SIGURG);
- }
+ if (!as && (as = ast_calloc(1, sizeof(*as)))) {
+ as->chan = chan;
+ AST_LIST_INSERT_HEAD(&aslist, as, list);
+ res = 0;
+ if (asthread == AST_PTHREADT_NULL) { /* need start the thread */
+ if (ast_pthread_create(&asthread, NULL, autoservice_run, NULL)) {
+ ast_log(LOG_WARNING, "Unable to create autoservice thread :(\n");
+ /* There will only be a single member in the list at this point,
+ the one we just added. */
+ AST_LIST_REMOVE(&aslist, as, list);
+ free(as);
+ res = -1;
+ } else
+ pthread_kill(asthread, SIGURG);
}
}
AST_LIST_UNLOCK(&aslist);