pthread_attr_setstacksize Subroutine

Purpose

Sets the value of the stacksize attribute of a thread attributes object.

Library

Threads Library (libpthreads.a)

Syntax

#include <pthread.h>

int pthread_attr_setstacksize (attr, stacksize)
pthread_attr_t *attr;
size_t stacksize;

Description

The pthread_attr_setstacksize subroutine sets the value of the stacksize attribute of the thread attributes object attr. This attribute specifies the minimum stack size, in bytes, of a thread created with this attributes object.

The allocated stack size is always a multiple of 8K bytes, greater or equal to the required minimum stack size of 56K bytes (PTHREAD_STACK_MIN). The following formula is used to calculate the allocated stack size: if the required stack size is lower than 56K bytes, the allocated stack size is 56K bytes; otherwise, if the required stack size belongs to the range from (56 + (- 1) * 16) K bytes to (56 + * 16) K bytes, the allocated stack size is (56 + * 16) K bytes.

Note: The pthread.h header file must be the first included file of each source file using the threads library. Otherwise, the -D_THREAD_SAFE compilation flag should be used, or the cc_r compiler used. In this case, the flag is automatically set.

Parameters

Item Description
attr Specifies the thread attributes object.
stacksize Specifies the minimum stack size, in bytes, to set. The default stack size is PTHREAD_STACK_MIN. The minimum stack size should be greater or equal than this value.

Return Values

Upon successful completion, 0 is returned. Otherwise, an error code is returned.

Error Codes

The pthread_attr_setstacksize subroutine is unsuccessful if the following is true:

Item Description
EINVAL The attr parameter is not valid, or the value of the stacksize parameter exceeds a system imposed limit.
ENOSYS The stack size POSIX option is not implemented.