Miscellany
public text v1 · immutablevoid lock_acquire(lock_t * l)
{
spinlock_acquire(&l->spinlock);
if (l->status == LOCKED) {
block(&l->waiting, &l->spinlock);
} else {
l->status = LOCKED;
spinlock_release(&l->spinlock);
}
}void lock_acquire(lock_t * l)
{
spinlock_acquire(&l->spinlock);
if (l->status == LOCKED) {
block(&l->waiting, &l->spinlock);
} else {
l->status = LOCKED;
spinlock_release(&l->spinlock);
}
}