Что происходит, когда время condition_timed_wiat истекает при ожидании условной переменной в linux
Что происходит, когда время condition_timed_wiat() истекает при ожидании переменной условия в linux
struct timeval tv;
struct timespec ts;
gettimeofday(&tv, NULL);
ts.tv_sec = time(NULL) + timeInMs / 1000;
ts.tv_nsec = tv.tv_usec * 1000 + 1000 * 1000 * (timeInMs % 1000);
ts.tv_sec += ts.tv_nsec / (1000 * 1000 * 1000);
ts.tv_nsec %= (1000 * 1000 * 1000);
n = pthread_cond_timedwait(&condition, &mutex, &ts);
1 ответ
Функция возвращает ETIMEDOUT
(что является ненулевым значением), и мьютекс не заблокирован.