From 46bbd72f3eeaff9386b2a90af88f3d46b458a0e8 Mon Sep 17 00:00:00 2001 From: rtm Date: Sat, 15 Jul 2006 12:03:57 +0000 Subject: no more recursive locks wakeup1() assumes you hold proc_table_lock sleep(chan, lock) provides atomic sleep-and-release to wait for condition ugly code in swtch/scheduler to implement new sleep fix lots of bugs in pipes, wait, and exit fix bugs if timer interrupt goes off in schedule() console locks per line, not per byte --- defs.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'defs.h') diff --git a/defs.h b/defs.h index acb0e04..3a07ed2 100644 --- a/defs.h +++ b/defs.h @@ -14,7 +14,8 @@ struct jmpbuf; void setupsegs(struct proc *); struct proc * newproc(void); void swtch(int); -void sleep(void *); +struct spinlock; +void sleep(void *, struct spinlock *); void wakeup(void *); void scheduler(void); void proc_exit(void); @@ -65,6 +66,8 @@ int cpu(void); struct spinlock; void acquire(struct spinlock * lock); void release(struct spinlock * lock); +void acquire1(struct spinlock * lock, struct proc *); +void release1(struct spinlock * lock, struct proc *); // main.c void load_icode(struct proc *p, uint8_t *binary, unsigned size); -- cgit v1.2.3