Causes a thread to wait for a condition variable to be signaled or broadcasted for a specified period of time.
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
int pthread_cond_timedwait ( pthread_cond_t *cond, pthread_mutex_t *mutex, struct timespec *abstime);
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 Error Description0 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.