From 77d6426a8323db91a60f246f385826c35f31521c Mon Sep 17 00:00:00 2001 From: =?utf8?q?Piotr=20Da=C5=82ek?= Date: Fri, 17 Jul 2015 12:43:52 +0200 Subject: [PATCH] Thread.cc: remove malloc/free pair MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit There's no need for mallocing pthread_attr_t in Thread::try_create(), it can be located on stack as it is freed in same function. This reduces pressure put on memory manager. Signed-off-by: Piotr Dałek (cherry picked from commit 614ac0f4e375f3dd008c8937d3f89f6005d6e0a0) --- src/common/Thread.cc | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/common/Thread.cc b/src/common/Thread.cc index a962e06f66a4d..df526baa08d0f 100644 --- a/src/common/Thread.cc +++ b/src/common/Thread.cc @@ -87,11 +87,11 @@ int Thread::kill(int signal) int Thread::try_create(size_t stacksize) { pthread_attr_t *thread_attr = NULL; + pthread_attr_t thread_attr_loc; + stacksize &= CEPH_PAGE_MASK; // must be multiple of page if (stacksize) { - thread_attr = (pthread_attr_t*) malloc(sizeof(pthread_attr_t)); - if (!thread_attr) - return -ENOMEM; + thread_attr = &thread_attr_loc; pthread_attr_init(thread_attr); pthread_attr_setstacksize(thread_attr, stacksize); } @@ -113,8 +113,6 @@ int Thread::try_create(size_t stacksize) r = pthread_create(&thread_id, thread_attr, _entry_func, (void*)this); restore_sigset(&old_sigset); - if (thread_attr) - free(thread_attr); return r; } -- 2.39.5