aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>2020-12-29 11:52:41 -0300
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2021-01-05 11:33:16 -0300
commitecdb06cdf22c7d37699f5420265245ff31c53b3c (patch)
treedeeeefe82be1af64318f0b722a037f0c336e9fee
parentc6e0b0b5b0b7922cdf0dce2af671e0c7e500df95 (diff)
downloadglibc-ecdb06cdf22c7d37699f5420265245ff31c53b3c.zip
glibc-ecdb06cdf22c7d37699f5420265245ff31c53b3c.tar.gz
glibc-ecdb06cdf22c7d37699f5420265245ff31c53b3c.tar.bz2
support: Add support_small_thread_stack_size
It returns the minimum stack size large enough to cover most internal glibc stack usage.
-rw-r--r--support/support_set_small_thread_stack_size.c12
-rw-r--r--support/xthread.h2
2 files changed, 11 insertions, 3 deletions
diff --git a/support/support_set_small_thread_stack_size.c b/support/support_set_small_thread_stack_size.c
index 3b0426e..faa2e2f 100644
--- a/support/support_set_small_thread_stack_size.c
+++ b/support/support_set_small_thread_stack_size.c
@@ -20,8 +20,8 @@
#include <pthread.h>
#include <support/xthread.h>
-void
-support_set_small_thread_stack_size (pthread_attr_t *attr)
+size_t
+support_small_thread_stack_size (void)
{
/* Some architectures have too small values for PTHREAD_STACK_MIN
which cannot be used for creating threads. Ensure that the stack
@@ -31,5 +31,11 @@ support_set_small_thread_stack_size (pthread_attr_t *attr)
if (stack_size < PTHREAD_STACK_MIN)
stack_size = PTHREAD_STACK_MIN;
#endif
- xpthread_attr_setstacksize (attr, stack_size);
+ return stack_size;
+}
+
+void
+support_set_small_thread_stack_size (pthread_attr_t *attr)
+{
+ xpthread_attr_setstacksize (attr, support_small_thread_stack_size ());
}
diff --git a/support/xthread.h b/support/xthread.h
index d57cef6..c2086db 100644
--- a/support/xthread.h
+++ b/support/xthread.h
@@ -75,6 +75,8 @@ void xpthread_attr_setstacksize (pthread_attr_t *attr,
void xpthread_attr_setguardsize (pthread_attr_t *attr,
size_t guardsize);
+/* Return the stack size used on support_set_small_thread_stack_size. */
+size_t support_small_thread_stack_size (void);
/* Set the stack size in ATTR to a small value, but still large enough
to cover most internal glibc stack usage. */
void support_set_small_thread_stack_size (pthread_attr_t *attr);