summaryrefslogtreecommitdiffstats
path: root/devel/glib20/files/extra-patch-gthread_gthread-posix.c
diff options
context:
space:
mode:
Diffstat (limited to 'devel/glib20/files/extra-patch-gthread_gthread-posix.c')
-rw-r--r--devel/glib20/files/extra-patch-gthread_gthread-posix.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/devel/glib20/files/extra-patch-gthread_gthread-posix.c b/devel/glib20/files/extra-patch-gthread_gthread-posix.c
new file mode 100644
index 000000000..bde2862f6
--- /dev/null
+++ b/devel/glib20/files/extra-patch-gthread_gthread-posix.c
@@ -0,0 +1,32 @@
+--- gthread/gthread-posix.c.orig Thu Jun 9 11:25:01 2005
++++ gthread/gthread-posix.c Fri Jun 10 20:23:17 2005
+@@ -115,7 +115,11 @@ static gint priority_normal_value;
+ # define PRIORITY_NORMAL_VALUE priority_normal_value
+ #endif /* POSIX_MIN_PRIORITY && POSIX_MAX_PRIORITY */
+
++#define G_THREAD_STACK_SIZE32 (1*1024*1024)
++#define G_THREAD_STACK_SIZE64 (2*1024*1024)
++
+ static gulong g_thread_min_stack_size = 0;
++static gulong g_thread_default_stack_size = 0;
+
+ #define G_MUTEX_SIZE (sizeof (pthread_mutex_t))
+
+@@ -309,8 +313,16 @@ g_thread_create_posix_impl (GThreadFunc
+ stack_size = MAX (g_thread_min_stack_size, stack_size);
+ /* No error check here, because some systems can't do it and
+ * we simply don't want threads to fail because of that. */
+- pthread_attr_setstacksize (&attr, stack_size);
+ }
++ else
++ {
++ if (sizeof(void *) == 8)
++ g_thread_default_stack_size = G_THREAD_STACK_SIZE64;
++ else
++ g_thread_default_stack_size = G_THREAD_STACK_SIZE32;
++ stack_size = MAX (g_thread_min_stack_size, g_thread_default_stack_size);
++ }
++ pthread_attr_setstacksize (&attr, stack_size);
+ #endif /* HAVE_PTHREAD_ATTR_SETSTACKSIZE */
+
+ #ifdef PTHREAD_SCOPE_SYSTEM