Index: src/platform/posix/thread.m ================================================================== --- src/platform/posix/thread.m +++ src/platform/posix/thread.m @@ -125,20 +125,27 @@ @try { struct thread_ctx *ctx; if (attr != NULL && POSIXAttrAvailable) { +#ifndef OF_HPUX struct sched_param param; +#endif if (attr->priority < -1 || attr->priority > 1) return EINVAL; -#ifdef HAVE_PTHREAD_ATTR_SETINHERITSCHED +#ifndef OF_HPUX +# ifdef HAVE_PTHREAD_ATTR_SETINHERITSCHED if ((error = pthread_attr_setinheritsched(&POSIXAttr, PTHREAD_EXPLICIT_SCHED)) != 0) return error; -#endif +# endif + + if ((error = pthread_attr_getschedparam(&POSIXAttr, + ¶m)) != 0) + return error; if (attr->priority < 0) { param.sched_priority = minPrio + (1.0f + attr->priority) * (normalPrio - minPrio); @@ -147,10 +154,11 @@ attr->priority * (maxPrio - normalPrio); if ((error = pthread_attr_setschedparam(&POSIXAttr, ¶m)) != 0) return error; +#endif if (attr->stackSize > 0) { if ((error = pthread_attr_setstacksize( &POSIXAttr, attr->stackSize)) != 0) return error;