求助~关于timer_sleep
如何修改让下面的程序避免忙等待啊?
/* Suspends execution for approximately TICKS timer ticks. */
void
timer_sleep (int64_t ticks)
{
int64_t start = timer_ticks ();
ASSERT (intr_get_level () == INTR_ON);
while (timer_elapsed (start) < ticks)
thread_yield ();
}
我想用semaphore和P,V让线程阻塞,但该怎么确定sleep的时间呢?