50#define barrier() asm volatile ("" : : : "memory")
struct list waiters
Definition: synch.h:37
struct thread * holder
Definition: synch.h:21
unsigned value
Definition: synch.h:9
struct list waiters
Definition: synch.h:10
bool lock_held_by_current_thread(const struct lock *)
Definition: synch.c:258
void lock_release(struct lock *)
Definition: synch.c:243
void cond_wait(struct condition *, struct lock *)
Definition: synch.c:371
void sema_up(struct semaphore *)
Definition: synch.c:114
void cond_init(struct condition *)
Definition: synch.c:344
void sema_down(struct semaphore *)
Definition: synch.c:68
bool sema_try_down(struct semaphore *)
Definition: synch.c:90
void lock_acquire(struct lock *)
Definition: synch.c:202
void donate_priority(void)
Definition: synch.c:269
void sema_init(struct semaphore *, unsigned value)
Definition: synch.c:52
void cond_signal(struct condition *, struct lock *)
void sema_self_test(void)
Definition: synch.c:141
void cond_broadcast(struct condition *, struct lock *)
Definition: synch.c:416
void remove_with_lock(struct lock *)
Definition: synch.c:289
bool lock_try_acquire(struct lock *)
Definition: synch.c:224
void refresh_priority(void)
Definition: synch.c:304
void lock_init(struct lock *)
Definition: synch.c:186