Initialize a condition variable
Synopsis:
#include <pthread.h>
pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
int pthread_cond_init( pthread_cond_t *cond,
const 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.
CAUTION:
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
- The cond argument pointer to a previously initialized
condition variable that 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.
- ENOMEM
- There wasn't enough memory to initialize the condvar.
Classification:
POSIX 1003.1 THR
Safety: |
|
Cancellation point |
No |
Interrupt handler |
No |
Signal handler |
Yes |
Thread |
Yes |