pthread_cond_init(3T) pthread_cond_init(3T)
Pthread Library
NAME
pthread_cond_init(), pthread_cond_destroy() - initialize or destroy a
condition variable.
SYNOPSIS
#include <pthread.h>
int pthread_cond_init(
pthread_cond_t *cond,
const pthread_condattr_t *attr
);
pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
int pthread_cond_destroy(
pthread_cond_t *cond
);
PARAMETERS
cond Pointer to the condition variable to be initialized or
destroyed.
attr Pointer to the attributes object that defines the
characteristics of the condition variable to be
initialized. If the pointer is NULL, default attributes
are used.
DESCRIPTION
The pthread_cond_init() function initializes the condition variable
cond with the attributes attr. If attr is NULL, the default condition
variable attributes are used to initialize the attributes object.
Refer to pthread_condattr_init() for a list of the default condition
variable attributes. After successful initialization, the condition
variable may be used in condition variable operations. A condition
variable should be initialized only once or the resulting behavior is
undefined. The pthread_once() function provides a way to ensure that
a condition variable is only initialized once.
The macro PTHREAD_COND_INITIALIZER can be used to initialize condition
variables that are statically allocated. These condition variables
will be initialized with default attributes. The pthread_cond_init()
function does not need to be called for statically initialized
condition variables.
If the process-shared attribute in the condition variable attributes
object referenced by attr is defined as PTHREAD_PROCESS_SHARED, the
condition variable must be allocated such that the processes sharing
the condition variable have access to it. This may be done through the
memory-mapping functions (see mmap(2)) or the shared memory functions
(see shmget(2)).
Hewlett-Packard Company - 1 - HP-UX Release 11.00: October 1997
pthread_cond_init(3T) pthread_cond_init(3T)
Pthread Library
pthread_cond_destroy() destroys the condition variable cond. This
function may set cond to an invalid value. The destroyed condition
variable can be reinitialized using the function pthread_cond_init().
If the condition variable is used after destruction in any condition
variable call, the resulting behavior is undefined.
A condition variable should be destroyed only when there are no
threads currently blocked on it. Destroying a condition variable that
is currently in use results in undefined behavior.
RETURN VALUE
Upon successful completion, pthread_cond_init() and
pthread_cond_destroy() return zero. Otherwise, an error number is
returned to indicate the error (the errno variable is not set).
ERRORS
If any of the following occur, the pthread_cond_init() function
returns the corresponding error number:
[EAGAIN] The system does not have the available resources
(other than memory) to initialize the condition
variable.
[ENOMEM] There is insufficient memory available in which to
initialize the condition variable.
For each of the following conditions, if the condition is detected,
the pthread_cond_init() function returns the corresponding error
number:
[EINVAL] The value specified by cond or attr is invalid.
[EBUSY] The specified condition variable is an already
initialized condition variable.
[EFAULT] The cond parameter points to an illegal address.
For each of the following conditions, if the condition is detected,
the pthread_cond_destroy() function returns the corresponding error
number:
[EINVAL] cond is not a valid condition variable.
[EBUSY] An attempt to destroy cond while it is in use by
another thread.
WARNINGS
The space for condition variable must be allocated before calling
pthread_cond_init(). Undefined behavior will result if the process-
shared attribute of attr is PTHREAD_PROCESS_SHARED and the space
allocated for the condition variable is not accessible to cooperating
Hewlett-Packard Company - 2 - HP-UX Release 11.00: October 1997
pthread_cond_init(3T) pthread_cond_init(3T)
Pthread Library
threads.
AUTHOR
pthread_cond_init() and pthread_cond_destroy() were derived from the
IEEE POSIX P1003.1c standard.
SEE ALSO
pthread_cond_wait(3T), pthread_cond_signal(3T).
STANDARDS CONFORMANCE
pthread_cond_init(): POSIX 1003.1c.
pthread_cond_destroy(): POSIX 1003.1c.