Permalink
Browse files

don't wait on condition without holding the lock

freebsd9 is the only platform that apparently cares about this.
  • Loading branch information...
1 parent 0adbf81 commit 8963836cf38205fc1fe315e7783f8325df5031cd @dormando dormando committed Sep 3, 2012
Showing with 2 additions and 1 deletion.
  1. +2 −1 assoc.c
View
@@ -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);

0 comments on commit 8963836

Please sign in to comment.