]> git.sur5r.net Git - openldap/commitdiff
Fix LDAP_PVT_THREAD_STACK_SIZE, automatically scale up on 64 bit machines
authorHoward Chu <hyc@openldap.org>
Fri, 15 Apr 2005 06:18:18 +0000 (06:18 +0000)
committerHoward Chu <hyc@openldap.org>
Fri, 15 Apr 2005 06:18:18 +0000 (06:18 +0000)
include/ldap_pvt_thread.h
libraries/libldap_r/thr_posix.c
libraries/libldap_r/thr_pth.c

index 3ec464a093fc45f1ffac8434c4af0df141c47920..6c1b86845b279647395c99f7db0e62f1ef95ea1f 100644 (file)
@@ -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 )
index 176cd55215349e34ffaa0c1903748dc1c7e6f3a4..0d353206fafca11a6cd67ebbad8ba16288c1d20a 100644 (file)
@@ -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
index 82dee868c78e9c9f12c00256b840a196cf7bc7ba..9b413ebd1519353cb0ce914b99822517885d7b26 100644 (file)
@@ -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