提交 5ac7038c 创建 作者: Silas Boyd-Wickizer's avatar Silas Boyd-Wickizer

cv_tick: bug fix.

上级 69db41a0
......@@ -28,6 +28,7 @@ void
cv_tick(void)
{
struct proc *p, *tmp;
struct condvar *cv;
int again;
u64 now;
......@@ -45,10 +46,11 @@ cv_tick(void)
if (tryacquire(&p->lock)) {
if (tryacquire(&p->oncv->lock)) {
LIST_REMOVE(p, cv_sleep);
cv = p->oncv;
p->cv_wakeup = 0;
wakeup(p);
release(&p->lock);
release(&p->oncv->lock);
release(&cv->lock);
continue;
} else {
release(&p->lock);
......
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论