我有一个用例,我想获取一个条件变量并在一段时间后释放它(例如:我有一个按时间排序的事件队列,我想阻塞指定的持续时间。)
Duration = Earliest Time in Q - Current Time()
我遇到了以下内容,这正是我的目的。
pthread_cond_timedwait(pthread_cond_t *restrict cond,
pthread_mutex_t *restrict mutex,
const struct timespec *restrict abstime);
但问题是 timespec.sec 是 time_t (这是一个 32 有符号类型)并且它溢出。有解决方法吗?是否有任何其他可用的构造,我们将阻止更长的时间?我正在使用 Linux 平台。