PTHREAD_ATTR_GETSTACK(3) | Library Functions Manual | PTHREAD_ATTR_GETSTACK(3) |
pthread_attr_getstack
,
pthread_attr_setstack
,
pthread_attr_getstacksize
,
pthread_attr_setstacksize
,
pthread_attr_getstackaddr
,
pthread_attr_setstackaddr
—
#include <pthread.h>
int
pthread_attr_getstack
(const
pthread_attr_t * restrict attr,
void ** restrict
stackaddr, size_t *
restrict stacksize);
int
pthread_attr_setstack
(pthread_attr_t
* restrict attr, void
*stackaddr, size_t
stacksize);
int
pthread_attr_getstacksize
(const
pthread_attr_t * restrict attr,
size_t * restrict
stacksize);
int
pthread_attr_setstacksize
(pthread_attr_t
*attr, size_t
stacksize);
int
pthread_attr_getstackaddr
(const
pthread_attr_t * restrict attr,
void ** restrict
stackaddr);
int
pthread_attr_setstackaddr
(pthread_attr_t
*attr, void
*stackaddr);
pthread_attr_getstack
() and
pthread_attr_setstack
() functions get and set,
respectively, the thread stack attributes stackaddr and
stacksize in the attr object. The
remaining four functions behave similarly, but instead of getting or setting
both stackaddr and stacksize,
these get and set the values individually.
The stacksize parameter is defined to be the minimum stack size (in bytes) allocated for the thread's stack during the creation of the thread. The stackaddr attribute specifies the location of storage to be used for the thread's stack. All pages within the stack described by stackaddr and stacksize should be both readable and writable by the thread.
The behavior is undefined in all functions if the
attr parameter does not refer to an attribute object
initialized by using
pthread_attr_init(3)
prior to the call. In addition, undefined behavior may follow if the
pthread_attr_getstack
() function is called before
the stackaddr attribute has been set.
ENOMEM
]The pthread_attr_setstacksize
() function
may additionally fail if:
EINVAL
]PTHREAD_STACK_MIN
or exceeds some system-imposed
limit.pthread_attr_getstackaddr
() and
pthread_attr_setstackaddr
() were however removed from
the specification in the IEEE Std 1003.1-2008
(“POSIX.1”) revision.
July 9, 2010 | NetBSD 9.0 |