pthread_attr_init()
Initialize a thread-attribute object
Synopsis:
#include <pthread.h>
int pthread_attr_init( pthread_attr_t *attr );
Arguments:
- attr
- A pointer to the pthread_attr_t structure that you want to initialize. For more information, see below.
Library:
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
Description:
The pthread_attr_init() function initializes the thread attributes in the thread attribute object attr to their default values:
- Cancellation requests may be acted on according to the cancellation type (PTHREAD_CANCEL_DEFERRED).
- Cancellation requests are held pending until a cancellation point (PTHREAD_CANCEL_ENABLE).
- Threads are put into a zombie state when they terminate, and they stay in this state until you retrieve their exit status or detach them (PTHREAD_CREATE_JOINABLE).
- Threads inherit the scheduling policy of their parent thread (PTHREAD_INHERIT_SCHED).
- Threads are scheduled against all threads in the system (PTHREAD_SCOPE_SYSTEM).
- The stack attributes are set so that the kernel will allocate a 256 KB stack, for both x86_64 and AArch64 architectures, for new threads and will free the stacks when the threads terminate.
- When threads are created, they aren't put into a suspended state (PTHREAD_CREATE_NOT_SUSPENDED).
After initialization, you can use the pthread_attr_* family of functions to get and set the attributes:
You can also set some non-POSIX attributes; for more information, see
QNX OS extensions,
in the documentation for pthread_create().
You can then pass the attribute object to pthread_create() to create a thread with the required attributes. You can use the same attribute object in multiple calls to pthread_create().
The effect of initializing an already-initialized thread-attribute object is undefined.
Returns:
- EOK
- Success.
Classification:
Safety: | |
---|---|
Cancellation point | No |
Signal handler | Yes |
Thread | Yes |