pthread_attr_init()

QNX SDP8.0C Library ReferenceAPIDeveloper

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:

POSIX 1003.1

Safety:
Cancellation point No
Signal handler Yes
Thread Yes
Page updated: