fix stack size of threads that implement places
... on platforms other than Mac OS X and Linux.
This commit is contained in:
parent
23a757aefa
commit
19cda0396b
|
@ -49,11 +49,10 @@ START_XFORM_SUSPEND;
|
||||||
# include <signal.h>
|
# include <signal.h>
|
||||||
# include <unistd.h>
|
# include <unistd.h>
|
||||||
# include <time.h>
|
# include <time.h>
|
||||||
# if defined(UNIX_LIMIT_STACK) || defined(UNIX_LIMIT_FDSET_SIZE)
|
#endif
|
||||||
# include <signal.h>
|
#ifdef UNIX_FIND_STACK_BOUNDS
|
||||||
# include <sys/time.h>
|
#include <sys/time.h>
|
||||||
# include <sys/resource.h>
|
#include <sys/resource.h>
|
||||||
# endif
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Define this is we need CGC support for threads. This was needed
|
/* Define this is we need CGC support for threads. This was needed
|
||||||
|
@ -254,9 +253,21 @@ mz_proc_thread* mz_proc_thread_create_w_stacksize(mz_proc_thread_start start_pro
|
||||||
}
|
}
|
||||||
|
|
||||||
mz_proc_thread* mz_proc_thread_create(mz_proc_thread_start start_proc, void* data) {
|
mz_proc_thread* mz_proc_thread_create(mz_proc_thread_start start_proc, void* data) {
|
||||||
intptr_t stacksize;
|
uintptr_t stacksize;
|
||||||
|
|
||||||
#if defined(OS_X) || defined(linux)
|
#if defined(ASSUME_FIXED_STACK_SIZE)
|
||||||
|
stacksize = FIXED_STACK_SIZE;
|
||||||
|
#elif defined(UNIX_FIND_STACK_BOUNDS)
|
||||||
|
{
|
||||||
|
struct rlimit rl;
|
||||||
|
getrlimit(RLIMIT_STACK, &rl);
|
||||||
|
stacksize = (uintptr_t)rl.rlim_cur;
|
||||||
|
# ifdef UNIX_STACK_MAXIMUM
|
||||||
|
if (stacksize > UNIX_STACK_MAXIMUM)
|
||||||
|
stacksize = UNIX_STACK_MAXIMUM;
|
||||||
|
# endif
|
||||||
|
}
|
||||||
|
#elif defined(OS_X) || defined(linux)
|
||||||
stacksize = 8*1024*1024;
|
stacksize = 8*1024*1024;
|
||||||
#else
|
#else
|
||||||
stacksize = 0;
|
stacksize = 0;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user