ミリ秒のスリープ間隔に 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);