int pthread_cond_timedwait(pthread_cond_t *cond, pthread_mutex_t *mutex, const struct timespec *abstime)
等待条件有两种方式:无条件等待pthread_cond_wait()和计时等待pthread_cond_timedwait(),其中计时等待方式如果在给定时刻前条件没有满足,则返回ETIMEOUT,结束等待,其中abstime以与time()系统调用相同意义的绝对时间形式出现,0表示格林尼治时间1970年1月1日0时0分0秒。
这个函数在使用时有个问题,假设当前时间是10:10,期望定时器在10分钟后到时结束等待。在等待的过程中,修改系统时间为8:10。那么这个超时时间就被延长,从10分钟增加到大约2个小时10分钟。所以在linux程序中,如果依赖这个函数的超时时间来触发某种动作的话,就需要考虑系统时间被修改的特殊场景。