man pages section 3: Basic Library Functions

Exit Print View

Updated: July 2014
 
 

pthread_attr_init(3C)

Name

pthread_attr_init, pthread_attr_destroy - initialize or destroy threads attribute object

Synopsis

cc –mt [ flag... ] file... [ library... ]
#include <pthread.h>

int pthread_attr_init(pthread_attr_t *attr);
int pthread_attr_destroy(pthread_attr_t *attr);

Description

The function pthread_attr_init() initializes a thread attributes object attr with the default value for all of the individual attributes used by a given implementation.

The resulting attribute object (possibly modified by setting individual attribute values), when used by pthread_create(), defines the attributes of the thread created. A single attributes object can be used in multiple simultaneous calls to pthread_create().

The pthread_attr_init() function initializes a thread attributes object ( attr) with the default value for each attribute as follows:

Attribute
Default Value
Meaning of Default
contentionscope
PTHREAD_SCOPE_PROCESS
resource competition within process
detachstate
PTHREAD_CREATE_JOINABLE
joinable by other threads
stackaddr
NULL
stack allocated by system
stacksize
0
1 or 2 megabyte
priority
0
priority of the thread
policy
SCHED_OTHER
traditional time-sharing policy
inheritsched
PTHREAD_INHERIT_SCHED
scheduling policy and parameters are inherited from the creating thread
guardsize
PAGESIZE
size of guard area for a thread's created stack

The pthread_attr_destroy() function destroys a thread attributes object ( attr), which cannot be reused until it is reinitialized. An implementation may cause pthread_attr_destroy() to set attr to an implementation-dependent invalid value. The behavior of using the attribute after it has been destroyed is undefined.

Return Values

Upon successful completion, pthread_attr_init() and pthread_attr_destroy() return a value of 0. Otherwise, an error number is returned to indicate the error.

Errors

The pthread_attr_init() function will fail if:

ENOMEM

Insufficient memory exists to initialize the thread attributes object.

The pthread_attr_destroy() function may fail if:

EINVAL

attr is invalid.

Attributes

See attributes(5) for descriptions of the following attributes:

ATTRIBUTE TYPE
ATTRIBUTE VALUE
Interface Stability
Committed
MT-Level
MT-Safe
Standard

See also

sysconf(3C), pthread_attr_getdetachstate(3C), pthread_attr_getguardsize(3C), pthread_attr_getinheritsched(3C), pthread_attr_getschedparam(3C), pthread_attr_getschedpolicy(3C), pthread_attr_getscope(3C), pthread_attr_getstackaddr(3C), pthread_attr_getstacksize(3C), pthread_attr_setdetachstate(3C), pthread_attr_setguardsize(3C), pthread_attr_setinheritsched(3C), pthread_attr_setschedparam(3C), pthread_attr_setschedpolicy(3C), pthread_attr_setscope(3C), pthread_attr_setstackaddr(3C), pthread_attr_setstacksize(3C), pthread_create(3C), attributes(5) , standards(5)