From 8c0ad492c6c91af6097bd4e50bccfd36f130bd95 Mon Sep 17 00:00:00 2001 From: Martin Mares Date: Sat, 9 Dec 2006 22:16:51 +0100 Subject: [PATCH] Use Threads.DefaultStackSize instead of various local stack sizes. --- images/image-test.c | 3 ++- lib/asio.c | 1 - lib/workqueue.c | 3 ++- lib/workqueue.h | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/images/image-test.c b/images/image-test.c index b046672f..0a22d479 100644 --- a/images/image-test.c +++ b/images/image-test.c @@ -12,6 +12,7 @@ #include "lib/lib.h" #include "lib/mempool.h" #include "lib/fastbuf.h" +#include "lib/threads.h" #include "images/images.h" #include "images/color.h" @@ -192,7 +193,7 @@ test_threads(void) pthread_t threads[TEST_THREADS_COUNT - 1]; pthread_attr_t attr; if (pthread_attr_init(&attr) < 0 || - pthread_attr_setstacksize(&attr, 1 << 20) < 0) + pthread_attr_setstacksize(&attr, default_thread_stack_size) < 0) ASSERT(0); for (uns i = 0; i < TEST_THREADS_COUNT - 1; i++) { diff --git a/lib/asio.c b/lib/asio.c index 312dd607..d495c2d7 100644 --- a/lib/asio.c +++ b/lib/asio.c @@ -28,7 +28,6 @@ asio_init_unlocked(void) DBG("ASIO: INIT"); asio_wpool.num_threads = 1; - asio_wpool.stack_size = 65536; worker_pool_init(&asio_wpool); } diff --git a/lib/workqueue.c b/lib/workqueue.c index a015e878..3d87a74e 100644 --- a/lib/workqueue.c +++ b/lib/workqueue.c @@ -8,6 +8,7 @@ */ #include "lib/lib.h" +#include "lib/threads.h" #include "lib/workqueue.h" static void * @@ -48,7 +49,7 @@ worker_pool_init(struct worker_pool *p) pthread_attr_t attr; if (pthread_attr_init(&attr) < 0 || - pthread_attr_setstacksize(&attr, p->stack_size) < 0) + pthread_attr_setstacksize(&attr, p->stack_size ? : default_thread_stack_size) < 0) ASSERT(0); for (uns i=0; i < p->num_threads; i++) diff --git a/lib/workqueue.h b/lib/workqueue.h index 5f8b5fcd..c16904ab 100644 --- a/lib/workqueue.h +++ b/lib/workqueue.h @@ -47,7 +47,7 @@ struct raw_queue { // Generic queue with locking struct worker_pool { struct raw_queue requests; uns num_threads; - uns stack_size; + uns stack_size; // 0 for default struct worker_thread *(*new_thread)(void); // default: xmalloc the struct void (*free_thread)(struct worker_thread *t); // default: xfree void (*init_thread)(struct worker_thread *t); // default: empty -- 2.39.2