mirror of
https://github.com/python/cpython.git
synced 2025-08-03 16:39:00 +00:00
bpo-18049: Sync thread stack size to main thread size on macOS (GH-14748)
This changeset increases the default size of the stack
for threads on macOS to the size of the stack
of the main thread and reenables the relevant
recursion test.
(cherry picked from commit 1a057bab0f
)
Co-authored-by: Ronald Oussoren <ronaldoussoren@mac.com>
This commit is contained in:
parent
dcc53ebbff
commit
8399641c34
5 changed files with 9 additions and 3 deletions
|
@ -1049,8 +1049,6 @@ class ThreadingExceptionTests(BaseTestCase):
|
|||
lock = threading.Lock()
|
||||
self.assertRaises(RuntimeError, lock.release)
|
||||
|
||||
@unittest.skipUnless(sys.platform == 'darwin' and test.support.python_is_optimized(),
|
||||
'test macosx problem')
|
||||
def test_recursion_limit(self):
|
||||
# Issue 9670
|
||||
# test that excessive recursion within a non-main thread causes
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
Increase the default stack size of threads from 5MB to 16MB on macOS, to
|
||||
match the stack size of the main thread. This avoids crashes on deep recursion
|
||||
in threads.
|
|
@ -40,7 +40,8 @@
|
|||
*/
|
||||
#if defined(__APPLE__) && defined(THREAD_STACK_SIZE) && THREAD_STACK_SIZE == 0
|
||||
#undef THREAD_STACK_SIZE
|
||||
#define THREAD_STACK_SIZE 0x500000
|
||||
/* Note: This matches the value of -Wl,-stack_size in configure.ac */
|
||||
#define THREAD_STACK_SIZE 0x1000000
|
||||
#endif
|
||||
#if defined(__FreeBSD__) && defined(THREAD_STACK_SIZE) && THREAD_STACK_SIZE == 0
|
||||
#undef THREAD_STACK_SIZE
|
||||
|
|
2
configure
vendored
2
configure
vendored
|
@ -9542,6 +9542,8 @@ then
|
|||
# Issue #18075: the default maximum stack size (8MBytes) is too
|
||||
# small for the default recursion limit. Increase the stack size
|
||||
# to ensure that tests don't crash
|
||||
# Note: This matches the value of THREAD_STACK_SIZE in
|
||||
# thread_pthread.h
|
||||
LINKFORSHARED="-Wl,-stack_size,1000000 $LINKFORSHARED"
|
||||
|
||||
if test "$enable_framework"
|
||||
|
|
|
@ -2694,6 +2694,8 @@ then
|
|||
# Issue #18075: the default maximum stack size (8MBytes) is too
|
||||
# small for the default recursion limit. Increase the stack size
|
||||
# to ensure that tests don't crash
|
||||
# Note: This matches the value of THREAD_STACK_SIZE in
|
||||
# thread_pthread.h
|
||||
LINKFORSHARED="-Wl,-stack_size,1000000 $LINKFORSHARED"
|
||||
|
||||
if test "$enable_framework"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue