浏览代码

some spinlock not being a pointer problems

tarfeef101 7 年之前
父节点
当前提交
550585b5e8
共有 1 个文件被更改,包括 3 次插入3 次删除
  1. 3 3
      kern/thread/synch.c

+ 3 - 3
kern/thread/synch.c

@@ -194,11 +194,11 @@ void lock_acquire(struct lock * lock)
     wchan_lock(lock->wc);
     spinlock_release(&(lock->spin));
     wchan_sleep(lock->wc);
-    spinlock_acquire(lock->wc);
+    spinlock_acquire(&(lock->wc));
   }
   
   lock->owner = curthread;
-  spinlock_release(lock->wc);
+  spinlock_release(&(lock->wc));
 }
 
 void lock_release(struct lock * lock)
@@ -209,7 +209,7 @@ void lock_release(struct lock * lock)
   KASSERT(curthread == lock->owner);
   lock->owner = NULL;
   wchan_wakeone(lock->wc);
-  spinlock_release(lock->spin);
+  spinlock_release(&(lock->spin));
 }
 
 bool lock_do_i_hold(struct lock * lock)