VMS Help  —  DCE  DCE_THREADS, Application Routines, pthread_cond_wait
 NAME

    pthread_cond_wait - Causes a thread to wait for a condition
 		       variable to be signaled or broadcast

 SYNOPSIS

     #include <pthread.h>

     int pthread_cond_wait( pthread_cond_t  *cond,
                             pthread_mutex_t *mutex );

 PARAMETERS

     cond                Condition variable waited on.

     mutex               Mutex associated with the condition variable
                         specified in cond.

 DESCRIPTION

 The pthread_cond_wait() routine causes a thread to wait for a condition
 variable to be signaled or broadcast. Each condition corresponds to one
 or more predicates based on shared data. The calling thread waits for
 the data to reach a particular state (for the predicate to become true).

 Call this routine after you have locked the mutex specified in mutex.
 The results of this routine are unpredictable if this routine is called
 without first locking the mutex.

 This routine automatically releases the mutex and causes the calling
 thread to wait on the condition. If the wait is satisfied as a result of
 some thread calling pthread_cond_signal() or pthread_cond_broadcast(),
 the mutex is reacquired and the routine returns.

 A thread that changes the state of storage protected by the mutex in
 such a way that a predicate associated with a condition variable might
 now be true must call either pthread_cond_signal() or
 pthread_cond_broadcast() for that condition variable. If neither call is
 made, any thread waiting on the condition variable continues to wait.

 This routine might (with low probability) return when the condition
 variable has not been signaled or broadcast. When a spurious wakeup
 occurs, the mutex is reacquired before the routine returns. (To handle
 this type of situation, enclose this routine in a loop that checks the
 predicate.)

 RETURN VALUES

 If the function fails, errno may be set to one of the following values:

    Return   Error       Description
    _________________________________________________________________
     0                   Successful completion.

    -1      [EINVAL]     The value specified by cond or mutex is invalid.

    -1      [EDEADLK]    A deadlock condition is detected.

 RELATED INFORMATION

     FUNCTIONS:  pthread_cond_broadcast
                  pthread_cond_destroy
                  pthread_cond_init
                  pthread_cond_signal
                  pthread_cond_timedwait
Close Help