diff options
Diffstat (limited to 'ext/Thread/Thread.xs')
-rw-r--r-- | ext/Thread/Thread.xs | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/ext/Thread/Thread.xs b/ext/Thread/Thread.xs index cb2e395051..b81ee26d9c 100644 --- a/ext/Thread/Thread.xs +++ b/ext/Thread/Thread.xs @@ -279,10 +279,19 @@ newthread (pTHX_ SV *startsv, AV *initargs, char *classname) if (!attr_inited) { attr_inited = 1; err = pthread_attr_init(&attr); +# ifdef THREAD_CREATE_NEEDS_STACK + if (err == 0) + err = pthread_attr_setstacksize(&attr, THREAD_CREATE_NEEDS_STACK); + if (err) + croak("panic: pthread_attr_setstacksize failed"); +#else + croak("panic: can't pthread_attr_setstacksize"); +# endif # ifdef PTHREAD_ATTR_SETDETACHSTATE if (err == 0) err = PTHREAD_ATTR_SETDETACHSTATE(&attr, attr_joinable); - + if (err) + croak("panic: pthread_attr_setdetachstate failed"); # else croak("panic: can't pthread_attr_setdetachstate"); # endif |