cnd_timedwait
From cppreference.com
                    
                                        
                    
                    
                                                            
                    | Defined in header  <threads.h> | ||
| (since C11) | ||
Atomically unlocks the mutex pointed to by mutex and blocks on the condition variable pointed to by cond until the thread is signalled by cnd_signal or cnd_broadcast, or until the TIME_UTC based time point pointed to by time_point has been reached. The mutex is locked again before the function returns.
The behavior is undefined if the mutex is not already locked by the calling thread.
Parameters
| cond | - | pointer to the condition variable to block on | 
| mutex | - | pointer to the mutex to unlock for the duration of the block | 
| duration | - | pointer to a object specifying timeout time to wait until | 
Return value
thrd_success if successful, thrd_timedout if the timeout time has been reached before the mutex is locked, or thrd_error if an error occurred.
References
- C11 standard (ISO/IEC 9899:2011):
- 7.26.3.5 The cnd_timedwait function (p: 379-380)
 
See also
| (C11) | blocks on a condition variable (function) | 
| C++ documentation for wait_until | |