summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Cahill <michael.cahill@wiredtiger.com>2015-02-11 21:14:18 +1100
committerMichael Cahill <michael.cahill@wiredtiger.com>2015-02-11 21:14:18 +1100
commita623fef81527f256f82ba8d52aa13d771f2cdb6b (patch)
tree4e5295f571b7952cc0417a79ca0c79b261baade2
parent756f57105505fd9f33858ab4835bff51e34afe7b (diff)
downloadmongo-a623fef81527f256f82ba8d52aa13d771f2cdb6b.tar.gz
The checkpoint server should do a tiny wait to clear any pending signal, not an open-ended wait.
refs #1668
-rw-r--r--src/conn/conn_ckpt.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/conn/conn_ckpt.c b/src/conn/conn_ckpt.c
index e1e667f5620..f38628617dd 100644
--- a/src/conn/conn_ckpt.c
+++ b/src/conn/conn_ckpt.c
@@ -92,12 +92,14 @@ __ckpt_server(void *arg)
conn->ckpt_signalled = 0;
/*
- * In case the condition variable was already
- * signalled, do a zero-length wait to clear it so we
- * don't do another checkpoint immediately.
+ * In case we crossed the log limit during the
+ * checkpoint and the condition variable was already
+ * signalled, do a tiny wait to clear it so we don't do
+ * another checkpoint immediately.
*/
- WT_ERR(__wt_cond_wait(session, conn->ckpt_cond, 0));
+ WT_ERR(__wt_cond_wait(session, conn->ckpt_cond, 1));
}
+
/*
* Wait...
* NOTE: If the user only configured logsize, then usecs