summaryrefslogtreecommitdiffstats
path: root/man3/pthread_attr_setstacksize.3
diff options
context:
space:
mode:
Diffstat (limited to 'man3/pthread_attr_setstacksize.3')
-rw-r--r--man3/pthread_attr_setstacksize.3115
1 files changed, 115 insertions, 0 deletions
diff --git a/man3/pthread_attr_setstacksize.3 b/man3/pthread_attr_setstacksize.3
new file mode 100644
index 0000000..278346e
--- /dev/null
+++ b/man3/pthread_attr_setstacksize.3
@@ -0,0 +1,115 @@
+'\" t
+.\" Copyright (c) 2008 Linux Foundation, written by Michael Kerrisk
+.\" <mtk.manpages@gmail.com>
+.\"
+.\" SPDX-License-Identifier: Linux-man-pages-copyleft
+.\"
+.TH pthread_attr_setstacksize 3 2023-07-20 "Linux man-pages 6.05.01"
+.SH NAME
+pthread_attr_setstacksize, pthread_attr_getstacksize \- set/get stack size
+attribute in thread attributes object
+.SH LIBRARY
+POSIX threads library
+.RI ( libpthread ", " \-lpthread )
+.SH SYNOPSIS
+.nf
+.B #include <pthread.h>
+.PP
+.BI "int pthread_attr_setstacksize(pthread_attr_t *" attr \
+", size_t " stacksize );
+.BI "int pthread_attr_getstacksize(const pthread_attr_t *restrict " attr ,
+.BI " size_t *restrict " stacksize );
+.fi
+.SH DESCRIPTION
+The
+.BR pthread_attr_setstacksize ()
+function sets the stack size attribute of the
+thread attributes object referred to by
+.I attr
+to the value specified in
+.IR stacksize .
+.PP
+The stack size attribute determines the minimum size (in bytes) that
+will be allocated for threads created using the thread attributes object
+.IR attr .
+.PP
+The
+.BR pthread_attr_getstacksize ()
+function returns the stack size attribute of the
+thread attributes object referred to by
+.I attr
+in the buffer pointed to by
+.IR stacksize .
+.SH RETURN VALUE
+On success, these functions return 0;
+on error, they return a nonzero error number.
+.SH ERRORS
+.BR pthread_attr_setstacksize ()
+can fail with the following error:
+.TP
+.B EINVAL
+The stack size is less than
+.B PTHREAD_STACK_MIN
+(16384) bytes.
+.PP
+On some systems,
+.\" e.g., MacOS
+.BR pthread_attr_setstacksize ()
+can fail with the error
+.B EINVAL
+if
+.I stacksize
+is not a multiple of the system page size.
+.SH ATTRIBUTES
+For an explanation of the terms used in this section, see
+.BR attributes (7).
+.TS
+allbox;
+lbx lb lb
+l l l.
+Interface Attribute Value
+T{
+.na
+.nh
+.BR pthread_attr_setstacksize (),
+.BR pthread_attr_getstacksize ()
+T} Thread safety MT-Safe
+.TE
+.sp 1
+.SH VERSIONS
+These functions are provided since glibc 2.1.
+.SH STANDARDS
+POSIX.1-2001, POSIX.1-2008.
+.SH NOTES
+For details on the default stack size of new threads, see
+.BR pthread_create (3).
+.PP
+A thread's stack size is fixed at the time of thread creation.
+Only the main thread can dynamically grow its stack.
+.PP
+The
+.BR pthread_attr_setstack (3)
+function allows an application to set both the size and location
+of a caller-allocated stack that is to be used by a thread.
+.SH BUGS
+As at glibc 2.8,
+if the specified
+.I stacksize
+is not a multiple of
+.B STACK_ALIGN
+(16 bytes on most architectures), it may be rounded
+.IR downward ,
+in violation of POSIX.1, which says that the allocated stack will
+be at least
+.I stacksize
+bytes.
+.SH EXAMPLES
+See
+.BR pthread_create (3).
+.SH SEE ALSO
+.BR getrlimit (2),
+.BR pthread_attr_init (3),
+.BR pthread_attr_setguardsize (3),
+.BR pthread_attr_setstack (3),
+.BR pthread_create (3),
+.BR pthreads (7)