summaryrefslogtreecommitdiff
path: root/spinlock.h
diff options
context:
space:
mode:
authorFrans Kaashoek <[email protected]>2011-08-26 10:08:29 -0400
committerFrans Kaashoek <[email protected]>2011-08-26 10:08:29 -0400
commit3a5fa7ed9020eaf8ab843a16d26db7393b2ec072 (patch)
treebfa4ad4ae03d7d21796bacaa7eab8e3d3e4ab365 /spinlock.h
parent8a9b6dbd4468f6312f1d07226a623879f970bd4b (diff)
downloadxv6-labs-3a5fa7ed9020eaf8ab843a16d26db7393b2ec072.tar.gz
xv6-labs-3a5fa7ed9020eaf8ab843a16d26db7393b2ec072.tar.bz2
xv6-labs-3a5fa7ed9020eaf8ab843a16d26db7393b2ec072.zip
Introduce and use sleeplocks instead of BUSY flags
Remove I_BUSY, B_BUSY, and intrans defs and usages One spinlock per buf to avoid ugly loop in bget fix race in filewrite (don't update f->off after releasing lock)
Diffstat (limited to 'spinlock.h')
-rw-r--r--spinlock.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/spinlock.h b/spinlock.h
index fdda016..f6a69b7 100644
--- a/spinlock.h
+++ b/spinlock.h
@@ -1,4 +1,4 @@
-// Mutual exclusion lock.
+// Mutual exclusion lock for short code fragments
struct spinlock {
uint locked; // Is the lock held?
@@ -9,3 +9,8 @@ struct spinlock {
// that locked the lock.
};
+// Lock that maybe held across sleeps
+struct sleeplock {
+ uint locked; // Is the lock held?
+};
+