提交 5c9fbe15 创建 作者: Frans Kaashoek's avatar Frans Kaashoek

some condvar cleanup

上级 2d239530
...@@ -54,7 +54,7 @@ binit(void) ...@@ -54,7 +54,7 @@ binit(void)
b->dev = -1; b->dev = -1;
bcache.head.next->prev = b; bcache.head.next->prev = b;
bcache.head.next = b; bcache.head.next = b;
initlock(&b->cv.lock, "bache"); initcondvar(&b->cv, "bache");
} }
} }
......
...@@ -9,6 +9,12 @@ ...@@ -9,6 +9,12 @@
#include "proc.h" #include "proc.h"
void void
initcondvar(struct condvar *cv, char *n)
{
initlock(&cv->lock, n);
}
void
cv_sleep(struct condvar *cv, struct spinlock *lk) cv_sleep(struct condvar *cv, struct spinlock *lk)
{ {
if(proc == 0) if(proc == 0)
......
struct condvar { struct condvar {
char name[MAXNAME];
struct spinlock lock; struct spinlock lock;
struct proc *waiters; struct proc *waiters;
void *chan; // If non-zero, sleeping on chan
}; };
...@@ -282,7 +282,7 @@ consoleinit(void) ...@@ -282,7 +282,7 @@ consoleinit(void)
{ {
initlock(&cons.lock, "console"); initlock(&cons.lock, "console");
initlock(&input.lock, "input"); initlock(&input.lock, "input");
initlock(&input.cv.lock, "input"); initcondvar(&input.cv, "input");
devsw[CONSOLE].write = consolewrite; devsw[CONSOLE].write = consolewrite;
devsw[CONSOLE].read = consoleread; devsw[CONSOLE].read = consoleread;
......
...@@ -15,6 +15,7 @@ void brelse(struct buf*); ...@@ -15,6 +15,7 @@ void brelse(struct buf*);
void bwrite(struct buf*); void bwrite(struct buf*);
// condvar.c // condvar.c
void initcondvar(struct condvar *, char *);
void cv_sleep(struct condvar *cv, struct spinlock*); void cv_sleep(struct condvar *cv, struct spinlock*);
void cv_wakeup(struct condvar *cv); void cv_wakeup(struct condvar *cv);
......
...@@ -142,7 +142,7 @@ iinit(void) ...@@ -142,7 +142,7 @@ iinit(void)
int i; int i;
initlock(&icache.lock, "icache"); initlock(&icache.lock, "icache");
for (i = 0; i < NINODE; i++) { for (i = 0; i < NINODE; i++) {
initlock(&icache.inode[i].cv.lock, "icache"); initcondvar(&icache.inode[i].cv, "icache");
} }
} }
......
...@@ -29,7 +29,7 @@ pinit(void) ...@@ -29,7 +29,7 @@ pinit(void)
for (i = 0; i < NPROC; i++) { for (i = 0; i < NPROC; i++) {
initlock(&ptables[c].proc[i].lock, ptables[c].proc[i].name); initlock(&ptables[c].proc[i].lock, ptables[c].proc[i].name);
initlock(&ptables[c].proc[i].cv.lock, ptables[c].proc[i].name); // XXX cv_init initcondvar(&ptables[c].proc[i].cv, ptables[c].proc[i].name); // XXX cv_init
} }
runqs[c].name[0] = (char) (c + '0'); runqs[c].name[0] = (char) (c + '0');
......
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论