summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2008-02-13 23:36:56 +0000
committerjhb <jhb@FreeBSD.org>2008-02-13 23:36:56 +0000
commit32100bd15f83acc8e775a8673d2c063d2d494b07 (patch)
tree41e8e88729440ca00ef14c9f5191de810e0bee98
parent64735ffb5f5be8bf62c36fbacca07d713ec8da82 (diff)
downloadFreeBSD-src-32100bd15f83acc8e775a8673d2c063d2d494b07.zip
FreeBSD-src-32100bd15f83acc8e775a8673d2c063d2d494b07.tar.gz
Mark sleepqueue chain spin mutexes are recursable since the sleepq code
now recurses on them in sleepq_broadcast() and sleepq_signal() when resuming threads that are fully asleep. MFC after: 1 week
-rw-r--r--sys/kern/subr_sleepqueue.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/kern/subr_sleepqueue.c b/sys/kern/subr_sleepqueue.c
index 3d3eaad..1b1abb4 100644
--- a/sys/kern/subr_sleepqueue.c
+++ b/sys/kern/subr_sleepqueue.c
@@ -177,7 +177,7 @@ init_sleepqueues(void)
for (i = 0; i < SC_TABLESIZE; i++) {
LIST_INIT(&sleepq_chains[i].sc_queues);
mtx_init(&sleepq_chains[i].sc_lock, "sleepq chain", NULL,
- MTX_SPIN);
+ MTX_SPIN | MTX_RECURSE);
#ifdef SLEEPQUEUE_PROFILING
snprintf(chain_name, sizeof(chain_name), "%d", i);
chain_oid = SYSCTL_ADD_NODE(NULL,
OpenPOWER on IntegriCloud