From c51395d79744a1aeb456d34b9bf5b5ea110ee677 Mon Sep 17 00:00:00 2001 From: Jack Jansen Date: Wed, 29 Aug 2001 15:24:53 +0000 Subject: GUSI on the Mac creates threads with a default stack size of 20KB, which is not enough for Python. Increased the stacksize to a (somewhat arbitrary) 64KB. --- Python/thread_pthread.h | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/Python/thread_pthread.h b/Python/thread_pthread.h index db3115a..6910ccb 100644 --- a/Python/thread_pthread.h +++ b/Python/thread_pthread.h @@ -48,6 +48,13 @@ #endif +#ifdef USE_GUSI +/* The Macintosh GUSI I/O library sets the stackspace to +** 20KB, much too low. We up it to 64K. +*/ +#define THREAD_STACK_SIZE 0x10000 +#endif + /* set default attribute object for different versions */ @@ -128,10 +135,17 @@ PyThread_start_new_thread(void (*func)(void *), void *arg) { pthread_t th; int success; +#ifdef THREAD_STACK_SIZE + pthread_attr_t attrs; +#endif dprintf(("PyThread_start_new_thread called\n")); if (!initialized) PyThread_init_thread(); +#ifdef THREAD_STACK_SIZE + pthread_attr_init(&attrs); + pthread_attr_setstacksize(&attrs, THREAD_STACK_SIZE); +#endif success = pthread_create(&th, #if defined(PY_PTHREAD_D4) pthread_attr_default, @@ -146,12 +160,18 @@ PyThread_start_new_thread(void (*func)(void *), void *arg) func, arg #elif defined(PY_PTHREAD_STD) +#ifdef THREAD_STACK_SIZE + &attrs, +#else (pthread_attr_t*)NULL, +#endif (void* (*)(void *))func, (void *)arg #endif ); - +#ifdef THREAD_STACK_SIZE + pthread_attr_destroy(&attrs); +#endif if (success == 0) { #if defined(PY_PTHREAD_D4) || defined(PY_PTHREAD_D6) || defined(PY_PTHREAD_D7) pthread_detach(&th); -- cgit v0.12