[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master e7a5b1b: Require a larger stack size for threads (b
From: |
Paul Eggert |
Subject: |
[Emacs-diffs] master e7a5b1b: Require a larger stack size for threads (bug#30364) |
Date: |
Tue, 27 Feb 2018 12:28:35 -0500 (EST) |
branch: master
commit e7a5b1bb671f0bc1c4dfbbbfc7b5ba1de1f39897
Author: Aaron Jensen <address@hidden>
Commit: Paul Eggert <address@hidden>
Require a larger stack size for threads (bug#30364)
* src/systhread.c (sys_thread_create) [THREADS_ENABLED && HAVE_PTHREAD]:
Require at least 8MB stack size for x64 and 4MB for x86.
---
src/systhread.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/src/systhread.c b/src/systhread.c
index 3f162a2..e972ed3 100644
--- a/src/systhread.c
+++ b/src/systhread.c
@@ -177,6 +177,13 @@ sys_thread_create (sys_thread_t *thread_ptr, const char
*name,
if (pthread_attr_init (&attr))
return 0;
+ /* Avoid crash on macOS with deeply nested GC (Bug#30364). */
+ size_t stack_size;
+ size_t required_stack_size = sizeof (void *) * 1024 * 1024;
+ if (pthread_attr_getstacksize (&attr, &stack_size) == 0
+ && stack_size < required_stack_size)
+ pthread_attr_setstacksize (&attr, required_stack_size);
+
if (!pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED))
{
result = pthread_create (thread_ptr, &attr, func, arg) == 0;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] master e7a5b1b: Require a larger stack size for threads (bug#30364),
Paul Eggert <=