diff options
author | Richard Mudgett <rmudgett@digium.com> | 2014-09-29 20:26:50 +0000 |
---|---|---|
committer | Richard Mudgett <rmudgett@digium.com> | 2014-09-29 20:26:50 +0000 |
commit | 00207158e1f132f9269c3566ee13a3751f793616 (patch) | |
tree | 3c4c8d73abc53939dcf14f94d570a6e905ee1f0f /main | |
parent | 19ffbb1e64d82cc0f6b710ad99e792c78deeb9af (diff) |
threadpool.c: Minor cleanup fixes.
* Fix threadpool_alloc() prototype.
* Add missing off-nominal NULL check of pool in threadpool_alloc().
* searializer_create() does not need to create the object with a lock as
the lock is not used.
........
Merged revisions 424096 from http://svn.asterisk.org/svn/asterisk/branches/12
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@424097 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'main')
-rw-r--r-- | main/threadpool.c | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/main/threadpool.c b/main/threadpool.c index 6cb241bcf..597e83e10 100644 --- a/main/threadpool.c +++ b/main/threadpool.c @@ -385,13 +385,15 @@ static void threadpool_destructor(void *obj) * \retval NULL Could not initialize threadpool properly * \retval non-NULL The newly-allocated threadpool */ -static void *threadpool_alloc(const char *name, const struct ast_threadpool_options *options) +static struct ast_threadpool *threadpool_alloc(const char *name, const struct ast_threadpool_options *options) { - RAII_VAR(struct ast_threadpool *, pool, - ao2_alloc(sizeof(*pool), threadpool_destructor), ao2_cleanup); - struct ast_str *control_tps_name = ast_str_create(64); + RAII_VAR(struct ast_threadpool *, pool, NULL, ao2_cleanup); + struct ast_str *control_tps_name; - if (!control_tps_name) { + pool = ao2_alloc(sizeof(*pool), threadpool_destructor); + control_tps_name = ast_str_create(64); + if (!pool || !control_tps_name) { + ast_free(control_tps_name); return NULL; } @@ -859,8 +861,9 @@ struct ast_threadpool *ast_threadpool_create(const char *name, { struct ast_taskprocessor *tps; RAII_VAR(struct ast_taskprocessor_listener *, tps_listener, NULL, ao2_cleanup); - RAII_VAR(struct ast_threadpool *, pool, threadpool_alloc(name, options), ao2_cleanup); + RAII_VAR(struct ast_threadpool *, pool, NULL, ao2_cleanup); + pool = threadpool_alloc(name, options); if (!pool) { return NULL; } @@ -1136,7 +1139,9 @@ static void serializer_dtor(void *obj) static struct serializer *serializer_create(struct ast_threadpool *pool) { - struct serializer *ser = ao2_alloc(sizeof(*ser), serializer_dtor); + struct serializer *ser; + + ser = ao2_alloc_options(sizeof(*ser), serializer_dtor, AO2_ALLOC_OPT_LOCK_NOLOCK); if (!ser) { return NULL; } |