aboutsummaryrefslogtreecommitdiff
path: root/kern/sched.h
diff options
context:
space:
mode:
Diffstat (limited to 'kern/sched.h')
-rw-r--r--kern/sched.h15
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