diff options
author | Eliot Horowitz <eliot@10gen.com> | 2012-04-20 15:24:27 -0400 |
---|---|---|
committer | Eliot Horowitz <eliot@10gen.com> | 2012-04-20 15:24:48 -0400 |
commit | 4bf154f26eacca48211e4474b35d816d1d977471 (patch) | |
tree | f1648566c86f4d0e7e94f0a51723aa0d889a266f /src/mongo/db/commands/fsync.cpp | |
parent | 3fd396db3f9386cf715b73f6b7176be024e4ab2c (diff) | |
download | mongo-4bf154f26eacca48211e4474b35d816d1d977471.tar.gz |
don't return from _unlockFsync until we're unlocked
Diffstat (limited to 'src/mongo/db/commands/fsync.cpp')
-rw-r--r-- | src/mongo/db/commands/fsync.cpp | 6 |
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; } } |