In C11, the cnd_timedwait
function is defined as followed:
int cnd_timedwait( cnd_t* restrict cond, mtx_t* restrict mutex, const struct timespec* restrict time_point );
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
orcnd_broadcast
, or until theTIME_UTC
based time point pointed to by time_point has been reached, or until a spurious wake-up occurs. The mutex is locked again before the function returns.Return value
thrd_success
if successful,thrd_timedout
if the timeout time has been reached before the mutex is locked, orthrd_error
if an error occurred.
When spurious wake-ups occur, would the function return thrd_success
or thrd_error
?
Although as far as I know, a spurious wake-up is not technically seen as an error.