Browse Source
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.
pull/15071/head
Ronald Oussoren
7 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with
9 additions and
3 deletions
Lib/test/test_threading.py
Misc/NEWS.d/next/macOS/2019-07-13-15-58-18.bpo-18049.MklhQQ.rst
Python/thread_pthread.h
configure
configure.ac
@ -1057,8 +1057,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
@ -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"