From ed8d0edf04f9df58815d126b1a61625bb2e1466b Mon Sep 17 00:00:00 2001 From: Bart Van Assche Date: Sat, 30 Aug 2014 06:48:01 +0000 Subject: [PATCH] drd/tests/pth_create_chain: Reduce stack usage git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14394 --- drd/tests/pth_create_chain.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/drd/tests/pth_create_chain.c b/drd/tests/pth_create_chain.c index 2de7689176..e0771243d9 100644 --- a/drd/tests/pth_create_chain.c +++ b/drd/tests/pth_create_chain.c @@ -3,6 +3,7 @@ #include +#include /* PTHREAD_STACK_MIN */ #include #include #include @@ -14,13 +15,18 @@ static int s_arg[1000]; static void* thread_func(void* p) { int thread_count = *(int*)(p); + pthread_attr_t attr; + if (thread_count > 0) { thread_count--; // std::cout << "create " << thread_count << std::endl; s_arg[thread_count] = thread_count; - pthread_create(&s_thread[thread_count], 0, thread_func, + pthread_attr_init(&attr); + pthread_attr_setstacksize(&attr, PTHREAD_STACK_MIN); + pthread_create(&s_thread[thread_count], &attr, thread_func, &s_arg[thread_count]); + pthread_attr_destroy(&attr); #if 0 std::cout << "created " << thread_count << "(" << s_thread[thread_count] << ")" << std::endl; @@ -31,6 +37,7 @@ static void* thread_func(void* p) int main(int argc, char** argv) { + pthread_attr_t attr; unsigned thread_count; int i; @@ -39,8 +46,11 @@ int main(int argc, char** argv) assert(thread_count >= 1); thread_count--; // std::cout << "create " << thread_count << std::endl; - pthread_create(&s_thread[thread_count], 0, thread_func, + pthread_attr_init(&attr); + pthread_attr_setstacksize(&attr, PTHREAD_STACK_MIN); + pthread_create(&s_thread[thread_count], &attr, thread_func, &thread_count); + pthread_attr_destroy(&attr); #if 0 std::cout << "created " << thread_count << "(" << s_thread[thread_count] << ")" << std::endl; -- 2.47.3