|
Threads Library Functions | pthread_attr_init(3THR) |
| pthread_attr_init, pthread_attr_destroy - initialize or destroy threads attribute object |
SYNOPSIS
|
cc -mt [ flag... ] file... -lpthread [ -lrt library... ]
#include <pthread.h> int pthread_attr_init(pthread_attr_t *attr); |
| int pthread_attr_destroy(pthread_attr_t *attr); |
|
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 | NULL | 1 or 2 megabyte |
priority | 0 | priority of the thread |
policy | SCHED_OTHER | determined by system |
inheritsched | PTHREAD_EXPLICIT_SCHED | scheduling policy and parameters not inherited but explicitly defined by the attribute object |
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.
|
|
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.
|
|
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.
|
|
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
MT-Level | MT-Safe |
|
|
sysconf(3C), pthread_attr_getdetachstate(3THR), pthread_attr_getguardsize(3THR), pthread_attr_getinheritsched(3THR), pthread_attr_getschedparam(3THR), pthread_attr_getschedpolicy(3THR), pthread_attr_getscope(3THR), pthread_attr_getstackaddr(3THR), pthread_attr_getstacksize(3THR), pthread_attr_setdetachstate(3THR), pthread_attr_setguardsize(3THR), pthread_attr_setinheritsched(3THR), pthread_attr_setschedparam(3THR), pthread_attr_setschedpolicy(3THR), pthread_attr_setscope(3THR), pthread_attr_setstackaddr(3THR), pthread_attr_setstacksize(3THR), pthread_create(3THR), attributes(5), standards(5)
|
| |