diff options
Diffstat (limited to 'kern/sched.h')
-rw-r--r-- | kern/sched.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/kern/sched.h b/kern/sched.h index 07d27ff5..35747f19 100644 --- a/kern/sched.h +++ b/kern/sched.h @@ -74,6 +74,21 @@ struct run_queue { typedef struct run_queue *run_queue_t; #define RUN_QUEUE_NULL ((run_queue_t) 0) +/* Shall be taken at splsched only */ +#ifdef MACH_LDEBUG +#define runq_lock(rq) do { \ + assert(splsched() == SPL7); \ + simple_lock_nocheck(&(rq)->lock); \ +} while (0) +#define runq_unlock(rq) do { \ + assert(splsched() == SPL7); \ + simple_unlock_nocheck(&(rq)->lock); \ +} while (0) +#else +#define runq_lock(rq) simple_lock_nocheck(&(rq)->lock) +#define runq_unlock(rq) simple_unlock_nocheck(&(rq)->lock) +#endif + #if MACH_FIXPRI /* * NOTE: For fixed priority threads, first_quantum indicates |