From 8963836cf38205fc1fe315e7783f8325df5031cd Mon Sep 17 00:00:00 2001 From: dormando Date: Sun, 2 Sep 2012 23:45:47 -0700 Subject: don't wait on condition without holding the lock freebsd9 is the only platform that apparently cares about this. --- assoc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/assoc.c b/assoc.c index 0edce2b..0fc5d18 100644 --- a/assoc.c +++ b/assoc.c @@ -244,9 +244,10 @@ static void *assoc_maintenance_thread(void *arg) { if (!expanding) { /* finished expanding. tell all threads to use fine-grained locks */ switch_item_lock_type(ITEM_LOCK_GRANULAR); - started_expanding = false; slabs_rebalancer_resume(); /* We are done expanding.. just wait for next invocation */ + mutex_lock(&cache_lock); + started_expanding = false; pthread_cond_wait(&maintenance_cond, &cache_lock); /* Before doing anything, tell threads to use a global lock */ mutex_unlock(&cache_lock); -- cgit v1.2.1