VMS Help
POSIX Threads, PTHREAD routines, pthread_cond_init
*Conan The Librarian (sorry for the slow response - running on an old VAX)
|
|
Initializes a condition variable.
#include <pthread.h>
int
pthread_cond_init (
pthread_cond_t *cond,
const pthread_condattr_t *attr);
cond
Condition variable to be initialized.
attr
Condition variable attributes object that defines the
characteristics of the condition variable to be initialized.
This routine initializes the condition variable cond with
attributes specified in the attr argument. If attr is NULL, the
default condition variable attributes are used.
A condition variable is a synchronization object used in
conjunction with a mutex. A mutex controls access to data that
is shared among threads; a condition variable allows threads to
wait for that data to enter a defined state.
Condition variables are not owned by a particular thread. Any
associated storage is not automatically deallocated when the
creating thread terminates.
Use the macro PTHREAD_COND_INITIALIZER to initialize statically
allocated condition variables to the default condition variable
attributes. To invoke this macro, enter:
pthread_cond_t condition = PTHREAD_COND_INITIALIZER
When statically initialized, a condition variable should not also
be initialized using pthread_cond_init(). Also, a statically
initialized condition variable need not be destroyed using
pthread_cond_destroy().
Under certain circumstances it might be impossible to wait upon
a statically initialized condition variable when the process
virtual address space (or some other memory limit) is nearly
exhausted. In such a case pthread_cond_wait() or pthread_cond_
timedwait() can return [ENOMEM]. To avoid this possibility,
initialize critical condition variables using pthread_cond_
init().
If an error condition occurs, this routine returns an integer
value indicating the type of error. Possible return values are as
follows:
Return Description
0 Successful completion.
[EAGAIN] The system lacks the necessary resources to
initialize another condition variable, or
The system-imposed limit on the total number of
condition variables under execution by a single user
is exceeded.
[EBUSY] The implementation has detected an attempt to
reinitialize the object referenced by cond, a
previously initialized, but not yet destroyed
condition variable.
[EINVAL] The value specified by attr is not a valid attributes
object.
[ENOMEM] Insufficient memory exists to initialize the
condition variable.
pthread_cond_broadcast()
pthread_cond_destroy()
pthread_cond_signal()
pthread_cond_timedwait()
pthread_cond_wait()
[legal]
[privacy]
[GNU]
[policy]
[netiquette]
[sponsors]
[FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.