From fa26028c8ed1adcf8bc3898ae6ee3ef9254b86af Mon Sep 17 00:00:00 2001 From: Artur Bergman Date: Fri, 12 Oct 2001 18:28:23 +0000 Subject: [PATCH] perhaps pthread_attr_t really needs to be set for the old api p4raw-id: //depot/perl@12412 --- ext/threads/threads.xs | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/ext/threads/threads.xs b/ext/threads/threads.xs index 378127c..8db1b88 100755 --- a/ext/threads/threads.xs +++ b/ext/threads/threads.xs @@ -157,7 +157,21 @@ SV* Perl_thread_create(char* class, SV* init_function, SV* params) { #else #ifdef OLD_PTHREADS_API - pthread_create( &thread->thr, (pthread_attr_t)NULL, Perl_thread_run, (void *)thread); + { + static pthread_attr_t attr; + static int attr_inited = 0; + sigset_t fullmask, oldmask; + static int attr_joinable = PTHREAD_CREATE_JOINABLE; + if (!attr_inited) { + attr_inited = 1; + pthread_attr_init(&attr); + } +# ifdef PTHREAD_ATTR_SETDETACHSTATE + PTHREAD_ATTR_SETDETACHSTATE(&attr, attr_joinable); +# endif + + pthread_create( &thread->thr, attr, Perl_thread_run, (void *)thread); + } #else pthread_create( &thread->thr, (pthread_attr_t*)NULL, Perl_thread_run, (void *)thread); #endif -- 2.7.4