2016-03-31 7 views
0

, что происходит, когда 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); 

ответ

0

Функция возвращает ETIMEDOUT (который является ненулевым значением) и мьютекс не заблокирован.