summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Bostic <keith@wiredtiger.com>2013-11-16 10:25:38 -0500
committerKeith Bostic <keith@wiredtiger.com>2013-11-16 10:25:38 -0500
commitd9060a6effb0ae8257f6e36de5c02471a032e2cd (patch)
tree20987c4a053de4bb35ccd5ab9592e2dc42758d0f
parent25a84f155b37bea6198f497278ef094992c0b770 (diff)
downloadmongo-d9060a6effb0ae8257f6e36de5c02471a032e2cd.tar.gz
Changed my mind -- don't lock/unlock, use a barrier (the same way we do in
compaction) to push the change, rather than acquiring a spinlock we don't need.
-rw-r--r--src/btree/bt_evict.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/btree/bt_evict.c b/src/btree/bt_evict.c
index a5dfaee6d83..404aaa5a5bb 100644
--- a/src/btree/bt_evict.c
+++ b/src/btree/bt_evict.c
@@ -600,13 +600,12 @@ err: /* On error, clear any left-over tree walk. */
if (btree->checkpointing) {
/*
- * Lock/unlock around clearing the checkpointing flag; it's not
- * required, but publishing the change ensures stalled eviction
- * gets moving as soon as possible.
+ * Clear the checkpoint flag and push the change; not required,
+ * but publishing the change means stalled eviction gets moving
+ * as soon as possible.
*/
- __wt_spin_lock(session, &cache->evict_lock);
btree->checkpointing = 0;
- __wt_spin_unlock(session, &cache->evict_lock);
+ WT_FULL_BARRIER();
/*
* Wake the eviction server, in case application threads have