summaryrefslogtreecommitdiff
path: root/src/mongo/db/commands
diff options
context:
space:
mode:
authorEliot Horowitz <eliot@10gen.com>2012-04-20 15:24:27 -0400
committerEliot Horowitz <eliot@10gen.com>2012-04-20 15:24:48 -0400
commit4bf154f26eacca48211e4474b35d816d1d977471 (patch)
treef1648566c86f4d0e7e94f0a51723aa0d889a266f /src/mongo/db/commands
parent3fd396db3f9386cf715b73f6b7176be024e4ab2c (diff)
downloadmongo-4bf154f26eacca48211e4474b35d816d1d977471.tar.gz
don't return from _unlockFsync until we're unlocked
Diffstat (limited to 'src/mongo/db/commands')
-rw-r--r--src/mongo/db/commands/fsync.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/mongo/db/commands/fsync.cpp b/src/mongo/db/commands/fsync.cpp
index d575f35a09c..3f8a25e6a91 100644
--- a/src/mongo/db/commands/fsync.cpp
+++ b/src/mongo/db/commands/fsync.cpp
@@ -130,6 +130,8 @@ namespace mongo {
fsyncCmd.locked = false;
fsyncCmd.err = "unlocked";
+
+ fsyncCmd._unlockSync.notify_one();
}
bool lockedForWriting() {
@@ -145,6 +147,10 @@ namespace mongo {
fsyncCmd.pendingUnlock = true;
fsyncCmd._unlockSync.notify_one();
fsyncCmd._threadSync.notify_one();
+
+ while ( fsyncCmd.locked ) {
+ fsyncCmd._unlockSync.wait( fsyncCmd.m );
+ }
return true;
}
}