pthread_cond_timedwait にはまる
timespec の tv_nsec が 10^9 を超えていると EINVAL が返る(OS X)。
以下のように場当たり対処。pthread_cond_timedwait の使いづらさは中々のもの。
timeout.tv_sec = now.tv_sec; timeout.tv_nsec = now.tv_usec * 1000; while (timeout.tv_nsec >= 1000000000) { timeout.tv_sec++; timeout.tv_nsec -= 1000000000; }