PTHREAD_COND_SIGNAL(3C) Standard C Library Functions PTHREAD_COND_SIGNAL(3C)
NAME
pthread_cond_signal, pthread_cond_broadcast - signal or broadcast a
condition
SYNOPSIS
cc -mt [
flag... ]
file... -lpthread [
library... ]
#include <pthread.h>
int pthread_cond_signal(
pthread_cond_t *cond);
int pthread_cond_broadcast(
pthread_cond_t *cond);
DESCRIPTION
These two functions are used to unblock threads blocked on a condition
variable.
The
pthread_cond_signal() call unblocks at least one of the threads that
are blocked on the specified condition variable
cond (if any threads are
blocked on
cond).
The
pthread_cond_broadcast() call unblocks all threads currently blocked
on the specified condition variable
cond.
If more than one thread is blocked on a condition variable, the
scheduling policy determines the order in which threads are unblocked.
When each thread unblocked as a result of a
pthread_cond_signal() or
pthread_cond_broadcast() returns from its call to
pthread_cond_wait() or
pthread_cond_timedwait(), the thread owns the mutex with which it called
pthread_cond_wait() or
pthread_cond_timedwait(). The thread(s) that are
unblocked contend for the mutex according to the scheduling policy (if
applicable), and as if each had called
pthread_mutex_lock().
The
pthread_cond_signal() or
pthread_cond_broadcast() functions may be
called by a thread whether or not it currently owns the mutex that
threads calling
pthread_cond_wait() or
pthread_cond_timedwait() have
associated with the condition variable during their waits; however, if
predictable scheduling behavior is required, then that mutex is locked by
the thread calling
pthread_cond_signal() or
pthread_cond_broadcast().
The
pthread_cond_signal() and
pthread_cond_broadcast() functions have no
effect if there are no threads currently blocked on
cond.
RETURN VALUES
If successful, the
pthread_cond_signal() and
pthread_cond_broadcast() functions return
0. Otherwise, an error number is returned to indicate
the error.
ERRORS
The
pthread_cond_signal() and
pthread_cond_broadcast() function may fail
if:
EINVAL The value
cond does not refer to an initialized condition
variable.
ATTRIBUTES
See
attributes(7) for descriptions of the following attributes:
+--------------------+-----------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-----------------+
|Interface Stability | Standard |
+--------------------+-----------------+
|MT-Level | MT-Safe |
+--------------------+-----------------+
SEE ALSO
pthread_cond_init(3C),
pthread_cond_timedwait(3C),
pthread_cond_wait(3C),
attributes(7),
condition(7),
standards(7) March 23, 2005
PTHREAD_COND_SIGNAL(3C)