From 9ce83ce54f7b22eb60bf89d51a22963baeea1e6a Mon Sep 17 00:00:00 2001 From: Howard Chu Date: Wed, 10 May 2000 16:09:26 +0000 Subject: [PATCH] Fix pthread_create test for AIX. AIX deviates from POSIX in that threads are created detached by default. We need to set the thread attributes in advance, otherwise pthread_detach will fail. --- build/openldap.m4 | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/build/openldap.m4 b/build/openldap.m4 index 7de0ec9d34..1675522954 100644 --- a/build/openldap.m4 +++ b/build/openldap.m4 @@ -616,14 +616,26 @@ AC_DEFUN([OL_PTHREAD_TEST_FUNCTION],[ /* pthread test function */ pthread_t t; int status; +#if HAVE_PTHREADS_FINAL && defined(PTHREAD_CREATE_UNDETACHED) + /* This system (e.g. AIX) defaults detached; must override */ + pthread_attr_t attr; - /* make sure pthread_create() isn't just a stub */ + status = pthread_attr_init(&attr); + if( status ) exit( status ); + + status = pthread_attr_setdetachstate(&attr,PTHREAD_CREATE_UNDETACHED); + if( status ) exit( status ); + +#define ATTR &attr +#else #if HAVE_PTHREADS_D4 - status = pthread_create(&t, pthread_attr_default, task, NULL); +#define ATTR pthread_attr_default #else - status = pthread_create(&t, NULL, task, NULL); +#define ATTR NULL #endif - +#endif + /* make sure pthread_create() isn't just a stub */ + status = pthread_create(&t, ATTR, task, NULL); if( status ) exit( status ); /* make sure pthread_detach() isn't just a stub */ -- 2.39.5