1. Konstantin Lopuhin
  2. pypy

Commits

Armin Rigo  committed e2b3678

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

  • Participants
  • Parent commits 8df907e
  • Branches default

Comments (0)

Files changed (1)

File rpython/translator/c/src/thread_pthread.c

View file
 # 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 */