]> git.sur5r.net Git - openldap/commitdiff
Fix for systems like AIX where pthread_create creates Detached by default
authorHoward Chu <hyc@openldap.org>
Thu, 11 May 2000 09:51:24 +0000 (09:51 +0000)
committerHoward Chu <hyc@openldap.org>
Thu, 11 May 2000 09:51:24 +0000 (09:51 +0000)
libraries/libldap_r/thr_posix.c

index 1a6810c525c4d0349bb1898982c8a55480ebf9d0..61e405584ed045dd118b49ef2595d682b009e1ab 100644 (file)
@@ -81,8 +81,19 @@ ldap_pvt_thread_create( ldap_pvt_thread_t * thread,
        void *(*start_routine)( void * ),
        void *arg)
 {
-       int rtn = pthread_create( thread, LDAP_PVT_THREAD_ATTR_DEFAULT,
+       int rtn;
+#if defined(HAVE_PTHREADS_FINAL) && defined(PTHREAD_CREATE_UNDETACHED)
+       pthread_attr_t attr;
+
+       pthread_attr_init(&attr);
+       if (!detach)
+               pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_UNDETACHED);
+
+       rtn = pthread_create( thread, &attr, start_routine, arg );
+#else
+       rtn = pthread_create( thread, LDAP_PVT_THREAD_ATTR_DEFAULT,
                                  start_routine, arg );
+#endif
 
        if( detach ) {
 #ifdef HAVE_PTHREADS_FINAL