=======================================================================
*/
-#if defined(__linux__) || defined(__APPLE__)
+#if defined(__linux__) || (defined(__APPLE__) && !MAC_STATIC_HACK)
#define USED
int numthreads = 4;
void RunThreadsOn (int workcnt, qboolean showpacifier, void(*func)(int))
{
pthread_mutexattr_t mattrib;
+ pthread_attr_t attr;
pthread_t work_threads[MAX_THREADS];
+ size_t stacksize;
int start, end;
int i=0, status=0;
dispatch = 0;
oldf = -1;
workcount = workcnt;
+
+ pthread_attr_init(&attr);
+ if(pthread_attr_setstacksize(&attr, 8388608) != 0)
+ {
+ stacksize = 0;
+ pthread_attr_getstacksize(&attr, &stacksize);
+ Sys_Printf("Could not set a per-thread stack size of 8 MB, using only %.2f MB\n", stacksize / 1048576.0);
+ }
if(numthreads == 1)
func(0);
for (i=0 ; i<numthreads ; i++)
{
/* Default pthread attributes: joinable & non-realtime scheduling */
- if(pthread_create(&work_threads[i], NULL, (void*)func, (void*)i) != 0)
+ if(pthread_create(&work_threads[i], &attr, (void*)func, (void*)i) != 0)
Error("pthread_create failed");
}
for (i=0 ; i<numthreads ; i++)