[Return to Bookshelf] [Contents] [Previous Section] [Next Section] [Index] [Help]


pthread_cond_timedwait

Causes a thread to wait for a condition variable to be signaled or broadcasted for a specified period of time.

Syntax

pthread_cond_timedwait(
                       cond,
                       mutex,
                       abstime );
 


Argument Data Type Access

cond opaque pthread_cond_t read mutex opaque pthread_mutex_t read abstime structure timespec read


C Binding

int
pthread_cond_timedwait (
pthread_cond_t *cond,
pthread_mutex_t *mutex,
struct timespec *abstime);

Arguments

cond
Condition variable waited on.
mutex
Mutex associated with the condition variable specified in cond.
abstime
Absolute time at which the wait expires, if the condition has not been signaled or broadcasted. (See the pthread_get_expiration_np routine, which is used to obtain a value for this argument.)

Description

This routine causes a thread to wait until one of the following occurs:

This routine is identical to pthread_cond_wait except that this routine can return before a condition variable is signaled or broadcasted; specifically, when a specified time expires.

If the current time equals or exceeds the expiration time, this routine returns immediately, without causing the current thread to wait. Your code should check the return status whenever this routine returns and take the appropriate action. Otherwise, waiting on the condition variable can become a nonblocking loop.

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

Return Values

If an error condition occurs, this routine returns -1 and errno is set to the corresponding error value. Possible return values are as follows:
Return  Error         Description

0 Successful completion. -1 [EINVAL] The value specified by cond, mutex, or abstime is invalid. Different mutexes are supplied for concurrent pthread_cond_timedwait operations or pthread_ cond_wait operations on the same condition variable. -1 [EAGAIN] The time specified by abstime expired. -1 [EDEADLK] A deadlock condition is detected.



[Return to Bookshelf] [Contents] [Previous Section] [Next Section] [Index] [Help]