Author: Armin Rigo <[email protected]>
Branch: 
Changeset: r62851:e2b3678c1e08
Date: 2013-03-27 23:33 +0100
http://bitbucket.org/pypy/pypy/changeset/e2b3678c1e08/

Log:    Copy CPython:ecf0ef85c72a: threading fix for OS/X and FreeBSD.

diff --git a/rpython/translator/c/src/thread_pthread.c 
b/rpython/translator/c/src/thread_pthread.c
--- a/rpython/translator/c/src/thread_pthread.c
+++ b/rpython/translator/c/src/thread_pthread.c
@@ -36,6 +36,18 @@
 # ifndef THREAD_STACK_SIZE
 #  define THREAD_STACK_SIZE   0   /* use default stack size */
 # endif
+
+# if (defined(__APPLE__) || defined(__FreeBSD__)) && 
defined(THREAD_STACK_SIZE) && THREAD_STACK_SIZE == 0
+   /* The default stack size for new threads on OSX is small enough that
+    * we'll get hard crashes instead of 'maximum recursion depth exceeded'
+    * exceptions.
+    *
+    * The default stack size below is the minimal stack size where a
+    * simple recursive function doesn't cause a hard crash.
+    */
+#  undef  THREAD_STACK_SIZE
+#  define THREAD_STACK_SIZE       0x400000
+# endif
 /* for safety, ensure a viable minimum stacksize */
 # define THREAD_STACK_MIN    0x8000  /* 32kB */
 #else  /* !_POSIX_THREAD_ATTR_STACKSIZE */
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to