Mercurial > cpython-lru_cache-weakref
comparison Python/thread_pthread.h @ 70448:0cded2f2cea3 3.1
Issue #9670: Increase the default stack size for secondary threads on
Mac OS X and FreeBSD to reduce the chances of a crash instead of a
"maximum recursion depth" RuntimeError exception.
(patch by Ronald Oussoren)
| author | Ned Deily <nad@acm.org> |
|---|---|
| date | Sat, 28 May 2011 00:19:56 -0700 |
| parents | 42d5001e5845 |
| children | 8a484090da7e |
comparison
equal
deleted
inserted
replaced
| 70443:95117a2da450 | 70448:0cded2f2cea3 |
|---|---|
| 15 /* The POSIX spec requires that use of pthread_attr_setstacksize | 15 /* The POSIX spec requires that use of pthread_attr_setstacksize |
| 16 be conditional on _POSIX_THREAD_ATTR_STACKSIZE being defined. */ | 16 be conditional on _POSIX_THREAD_ATTR_STACKSIZE being defined. */ |
| 17 #ifdef _POSIX_THREAD_ATTR_STACKSIZE | 17 #ifdef _POSIX_THREAD_ATTR_STACKSIZE |
| 18 #ifndef THREAD_STACK_SIZE | 18 #ifndef THREAD_STACK_SIZE |
| 19 #define THREAD_STACK_SIZE 0 /* use default stack size */ | 19 #define THREAD_STACK_SIZE 0 /* use default stack size */ |
| 20 #endif | |
| 21 | |
| 22 #if (defined(__APPLE__) || defined(__FreeBSD__)) && defined(THREAD_STACK_SIZE) && THREAD_STACK_SIZE == 0 | |
| 23 /* The default stack size for new threads on OSX is small enough that | |
| 24 * we'll get hard crashes instead of 'maximum recursion depth exceeded' | |
| 25 * exceptions. | |
| 26 * | |
| 27 * The default stack size below is the minimal stack size where a | |
| 28 * simple recursive function doesn't cause a hard crash. | |
| 29 */ | |
| 30 #undef THREAD_STACK_SIZE | |
| 31 #define THREAD_STACK_SIZE 0x400000 | |
| 20 #endif | 32 #endif |
| 21 /* for safety, ensure a viable minimum stacksize */ | 33 /* for safety, ensure a viable minimum stacksize */ |
| 22 #define THREAD_STACK_MIN 0x8000 /* 32kB */ | 34 #define THREAD_STACK_MIN 0x8000 /* 32kB */ |
| 23 #else /* !_POSIX_THREAD_ATTR_STACKSIZE */ | 35 #else /* !_POSIX_THREAD_ATTR_STACKSIZE */ |
| 24 #ifdef THREAD_STACK_SIZE | 36 #ifdef THREAD_STACK_SIZE |
