我正在尝试将 pthread_cond_timedwait 用于毫秒睡眠间隔,但我没有获得睡眠持续时间。我的线程比我提到的睡得更多。下面是我的实现。如果我在任何地方错了,请告诉我。
struct timeval tp;
struct timespec ts;
int rc = gettimeofday(&tp, NULL);
ts.tv_sec = tp.tv_sec;
ts.tv_nsec = tp.tv_usec * 1000;
ts.tv_nsec += 30 * 1000000; //30 is my milliseconds
pthread_mutex_lock(&mtxPlaybackWait);
pthread_cond_timedwait(&playbackSignal, &mtxPlaybackWait, &ts);
pthread_mutex_unlock(&mtxPlaybackWait);