diff options
Diffstat (limited to 'kernel/spinlock.c')
-rw-r--r-- | kernel/spinlock.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/kernel/spinlock.c b/kernel/spinlock.c index 5a44a46..c238091 100644 --- a/kernel/spinlock.c +++ b/kernel/spinlock.c @@ -20,7 +20,7 @@ initlock(struct spinlock *lk, char *name) // Loops (spins) until the lock is acquired. // Holding a lock for a long time may cause // other CPUs to waste time spinning to acquire it. -void +void //__attribute__ ((noinline)) acquire(struct spinlock *lk) { push_off(); // disable interrupts to avoid deadlock. @@ -44,11 +44,13 @@ acquire(struct spinlock *lk) } // Release the lock. -void +void //__attribute__ ((noinline)) release(struct spinlock *lk) { - if(!holding(lk)) + if(!holding(lk)) { + printf("%p: !holding %s %p\n", mycpu(), lk->name, lk->cpu); panic("release"); + } lk->cpu = 0; |