![]() |
![]() |
![]() |
![]() |
pthread_cond_init()
Initialize a condition variable
Synopsis:
#include <pthread.h>
pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
int pthread_cond_init( pthread_cond_t* cond,
pthread_condattr_t* attr );
Arguments:
- cond
- A pointer to the pthread_cond_t object that you want to initialize.
- attr
- NULL, or a pointer to a pthread_condattr_t object that specifies the attributes that you want to use for the condvar. For more information, see pthread_condattr_init().
Library:
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
Description:
The pthread_cond_init() function initializes the condition variable cond with the attributes in the condition variable attribute object attr. If attr is NULL, cond is initialized with the default values for the attributes.
![]() |
You should allocate synchronization objects only in normal memory mappings. On certain processors (e.g. some PPC ones), atomic operations such as calls to pthread_mutex_lock() will cause a fault if the control structure is allocated in uncached memory. |
If the condition variable is statically allocated, you can initialize it with the default attribute values by assigning to it the macro PTHREAD_COND_INITIALIZER.
Condition variables have at least the following attributes defined:
- PTHREAD_PROCESS_PRIVATE
- The condition variable can only be accessed by threads created within the same process as the thread that initialized the condition variable.
- PTHREAD_PROCESS_SHARED
- Any thread that has access to the memory where the condition variable is allocated can access the condition variable.
For more information about these attributes, see pthread_condattr_getpshared() and pthread_condattr_setpshared().
Returns:
- EOK
- Success.
- EAGAIN
- All kernel synchronization objects are in use.
- EBUSY
- Previously initialized condition variable, cond, hasn't been destroyed.
- EFAULT
- A fault occurred when the kernel tried to access cond or attr.
- EINVAL
- The value specified by cond is invalid.
Classification:
| Safety: | |
|---|---|
| Cancellation point | No |
| Interrupt handler | No |
| Signal handler | Yes |
| Thread | Yes |
See also:
pthread_condattr_init(), pthread_cond_destroy()
![]() |
![]() |
![]() |
![]() |

![[Previous]](../prev.gif)
![[Contents]](../contents.gif)
![[Index]](../keyword_index.gif)
![[Next]](../next.gif)
