提交 db4dc1c3 创建 作者: Nickolai Zeldovich's avatar Nickolai Zeldovich

lock-free check leads to a race condition

上级 85b77136
...@@ -52,8 +52,9 @@ cv_sleep(struct condvar *cv, struct spinlock *lk) ...@@ -52,8 +52,9 @@ cv_sleep(struct condvar *cv, struct spinlock *lk)
void void
cv_wakeup(struct condvar *cv) cv_wakeup(struct condvar *cv)
{ {
if (!cv->waiters) // XXX race with cv_sleep()
return; // if (!cv->waiters)
// return;
acquire(&cv->lock); acquire(&cv->lock);
while(cv->waiters) { while(cv->waiters) {
......
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论