Index: src/threading_pthread.m ================================================================== --- src/threading_pthread.m +++ src/threading_pthread.m @@ -38,21 +38,22 @@ attr->priority = (float)(param.sched_priority - minPrio) / (maxPrio - minPrio); if (pthread_attr_getstacksize(&pattr, &attr->stackSize) != 0) return false; - - return true; } @finally { pthread_attr_destroy(&pattr); } + + return true; } bool of_thread_new(of_thread_t *thread, id (*function)(id), id data, const of_thread_attr_t *attr) { + bool ret; pthread_attr_t pattr; if (pthread_attr_init(&pattr) != 0) return false; @@ -83,15 +84,17 @@ if (pthread_attr_setstacksize(&pattr, attr->stackSize) != 0) return false; } - return (pthread_create(thread, &pattr, + ret = (pthread_create(thread, &pattr, (void*(*)(void*))function, (__bridge void*)data) == 0); } @finally { pthread_attr_destroy(&pattr); } + + return ret; } bool of_thread_join(of_thread_t thread) {