#pragma once #include #include struct task; // A queue of tasks waiting for an event. struct wait_queue { tailq_head(struct task) waiters; spinlock_t lock; }; void wait_queue_init(struct wait_queue* wq);