]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-38852: Set thread stack size to 8 Mb for debug builds on android platforms (GH...
authorxdegaye <xdegaye@gmail.com>
Sun, 8 Dec 2019 07:40:14 +0000 (08:40 +0100)
committerVictor Stinner <vstinner@python.org>
Sun, 8 Dec 2019 07:40:14 +0000 (08:40 +0100)
Misc/NEWS.d/next/Core and Builtins/2019-11-22-09-55-21.bpo-38852.y7oPEa.rst [new file with mode: 0644]
Python/thread_pthread.h

diff --git a/Misc/NEWS.d/next/Core and Builtins/2019-11-22-09-55-21.bpo-38852.y7oPEa.rst b/Misc/NEWS.d/next/Core and Builtins/2019-11-22-09-55-21.bpo-38852.y7oPEa.rst
new file mode 100644 (file)
index 0000000..915a936
--- /dev/null
@@ -0,0 +1 @@
+Set the thread stack size to 8 Mb for debug builds on android platforms.
index b9a340530cfe986cbf35d4676ca9b5cd83bb6a1a..ff4266c72b4b32577135fa5d80503303f77de908 100644 (file)
 #undef  THREAD_STACK_SIZE
 #define THREAD_STACK_SIZE       0x200000
 #endif
+/* bpo-38852: test_threading.test_recursion_limit() checks that 1000 recursive
+   Python calls (default recursion limit) doesn't crash, but raise a regular
+   RecursionError exception. In debug mode, Python function calls allocates
+   more memory on the stack, so use a stack of 8 MiB. */
+#if defined(__ANDROID__) && defined(THREAD_STACK_SIZE) && THREAD_STACK_SIZE == 0
+#   ifdef Py_DEBUG
+#   undef  THREAD_STACK_SIZE
+#   define THREAD_STACK_SIZE    0x800000
+#   endif
+#endif
 /* for safety, ensure a viable minimum stacksize */
 #define THREAD_STACK_MIN        0x8000  /* 32 KiB */
 #else  /* !_POSIX_THREAD_ATTR_STACKSIZE */