NAME | SYNOPSIS | DESCRIPTION | RESTRICTIONS | RETURN VALUE | ERRORS | ATTRIBUTES | SEE ALSO
#include <pthread.h>int pthread_attr_init(pthread_attr_t * attr);
The pthread_attr_init function initializes the thread attribute object referenced by attr with the default values for all the individual thread attributes. The resulting attribute object may be modified by setting individual attribute values. When subsequently used by pthread_create , it defines the attributes of the newly created thread. A single attribute object can be used in multiple simultaneous calls to pthread_create . Modification of an attribute object has no effect on threads already created using that object.
The pthread_attr_destroy function is used to delete a thread attribute object.
The complete list of thread creation attributes follows, with defaults indicated.
stacksize PTHREAD_STACK_MIN stackaddr stack dynamically allocated detachstate PTHREAD_CREATE_JOINABLE contentionscope PTHREAD_SCOPE_SYSTEM inheritsched PTHREAD_INHERIT_SCHED schedpolicy default schedpolicy (see mrtp(POSIX)) schedparam default schedparam (see mrtp(POSIX)) |
The latter four attributes, which pertain to scheduling, are described in pthread_attr_setscope (3POSIX).
The stacksize attribute defines the minimum stack size (in bytes). The pthread_attr_setstacksize and pthread_attr_getstacksize functions respectively set and get the value of the stacksize attribute in the thread attribute object referenced by attr .
The stackaddr attribute specifies the location in memory to be used for the newly created thread's stack. If no stackaddr value is provided explicitly, the stack for the new thread will be allocated dynamically by the system. The pthread_attr_setstackaddr and pthread_attr_getstackaddr functions respectively set and get the value of the stackaddr attribute in the attr object.
The detachstate attribute controls the behavior of a new thread when using the pthread_join function. If the detachstate attribute is set to PTHREAD_CREATE_JOINABLE (the default), the identifier of the thread may be used as the target of a pthread_join . If detachstate is set to PTHREAD_CREATE_DETACHED, all resources associated with the thread are freed immediately on exit, and the thread identifier may not be used in a pthread_join (see pthread_exit (3POSIX), pthread_join (3POSIX)). The pthread_attr_setdetachstate and pthread_attr_getdetachstate functions respectively set and get the detachstate attribute in the attr object.
The pthread_attr_setstackaddr and pthread_attr_getstackaddr functions are available only in user mode. In supervisor actors the stackaddr attribute is not defined, and the stack for a new thread is always provided by the system.
Upon successful completion, all calls listed above return zero. Otherwise, an error code is returned. (NOTE: These calls do not set errno .)
The stacksize argument to pthread_attr_setstacksize is less than PTHREAD_STACK_MIN. The detachstate argument to pthread_attr_setdetachstate contains a value other than PTHREAD_CREATE_JOINABLE or PTHREAD_CREATE_DETACHED.
pthread_attr_setstackaddr and pthread_attr_getstackaddr are not supported for supervisor mode actors.
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
---|---|
Interface Stability | Evolving |
NAME | SYNOPSIS | DESCRIPTION | RESTRICTIONS | RETURN VALUE | ERRORS | ATTRIBUTES | SEE ALSO