From 5608206da219160065cf1b68662f98ec8ed43d89 Mon Sep 17 00:00:00 2001 From: Howard Chu Date: Fri, 15 Apr 2005 06:18:18 +0000 Subject: [PATCH] Fix LDAP_PVT_THREAD_STACK_SIZE, automatically scale up on 64 bit machines --- include/ldap_pvt_thread.h | 8 ++++++-- libraries/libldap_r/thr_posix.c | 2 +- libraries/libldap_r/thr_pth.c | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/include/ldap_pvt_thread.h b/include/ldap_pvt_thread.h index 3ec464a093..6c1b86845b 100644 --- a/include/ldap_pvt_thread.h +++ b/include/ldap_pvt_thread.h @@ -44,9 +44,13 @@ ldap_pvt_thread_set_concurrency LDAP_P(( int )); #define LDAP_PVT_THREAD_CREATE_JOINABLE 0 #define LDAP_PVT_THREAD_CREATE_DETACHED 1 +#define LDAP_PVT_THREAD_SET_STACK_SIZE #ifndef LDAP_PVT_THREAD_STACK_SIZE - /* LARGE stack */ -#define LDAP_PVT_THREAD_STACK_SIZE (4*1024*1024) + /* LARGE stack. Will be twice as large on 64 bit machine. */ +#define LDAP_PVT_THREAD_STACK_SIZE ( 1 * 1024 * 1024 * sizeof(void *) ) +/* May be explicitly defined to zero to disable it */ +#elif LDAP_PVT_THREAD_STACK_SIZE == 0 +#undef LDAP_PVT_THREAD_SET_STACK_SIZE #endif LDAP_F( int ) diff --git a/libraries/libldap_r/thr_posix.c b/libraries/libldap_r/thr_posix.c index 176cd55215..0d353206fa 100644 --- a/libraries/libldap_r/thr_posix.c +++ b/libraries/libldap_r/thr_posix.c @@ -110,7 +110,7 @@ ldap_pvt_thread_create( ldap_pvt_thread_t * thread, pthread_attr_create(&attr); #endif -#if defined(LDAP_PVT_THREAD_STACK_SIZE) && LDAP_PVT_THREAD_STACK_SIZE > 0 +#ifdef LDAP_PVT_THREAD_SET_STACK_SIZE /* this should be tunable */ pthread_attr_setstacksize( &attr, LDAP_PVT_THREAD_STACK_SIZE ); #endif diff --git a/libraries/libldap_r/thr_pth.c b/libraries/libldap_r/thr_pth.c index 82dee868c7..9b413ebd15 100644 --- a/libraries/libldap_r/thr_pth.c +++ b/libraries/libldap_r/thr_pth.c @@ -38,7 +38,7 @@ ldap_int_thread_initialize( void ) } detach_attr = pth_attr_new(); joined_attr = pth_attr_new(); -#if LDAP_PVT_THREAD_STACK_SIZE +#ifdef LDAP_PVT_THREAD_SET_STACK_SIZE pth_attr_set( joined_attr, PTH_ATTR_STACK_SIZE, LDAP_PVT_THREAD_STACK_SIZE ); pth_attr_set( detach_attr, PTH_ATTR_STACK_SIZE, LDAP_PVT_THREAD_STACK_SIZE ); #endif -- 2.39.5