summaryrefslogtreecommitdiff
path: root/src/mongo/db/repl/minvalid.cpp
diff options
context:
space:
mode:
authorGeert Bosch <geert@mongodb.com>2014-11-20 14:26:43 -0500
committerGeert Bosch <geert@mongodb.com>2014-11-21 13:18:53 -0500
commite7f6c56327afa51847a95d9d5bc6399209856c10 (patch)
tree93a6f8b98d13ff81bd21a2ffc9f312e4ff662123 /src/mongo/db/repl/minvalid.cpp
parente5644e2ca12a60df677cb8e8dfc70f19a9423b0a (diff)
downloadmongo-e7f6c56327afa51847a95d9d5bc6399209856c10.tar.gz
SERVER-16192: Add ScopedTransaction to automatically commitAndRestart()
Diffstat (limited to 'src/mongo/db/repl/minvalid.cpp')
-rw-r--r--src/mongo/db/repl/minvalid.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/mongo/db/repl/minvalid.cpp b/src/mongo/db/repl/minvalid.cpp
index 30a22a611ea..0005f364963 100644
--- a/src/mongo/db/repl/minvalid.cpp
+++ b/src/mongo/db/repl/minvalid.cpp
@@ -50,17 +50,20 @@ namespace {
} // namespace
void clearInitialSyncFlag(OperationContext* txn) {
+ ScopedTransaction transaction(txn, MODE_IX);
Lock::DBLock lk(txn->lockState(), "local", MODE_X);
Helpers::putSingleton(txn, minvalidNS, BSON("$unset" << initialSyncFlag));
}
void setInitialSyncFlag(OperationContext* txn) {
+ ScopedTransaction transaction(txn, MODE_IX);
Lock::DBLock lk(txn->lockState(), "local", MODE_X);
Helpers::putSingleton(txn, minvalidNS, BSON("$set" << initialSyncFlag));
}
bool getInitialSyncFlag() {
OperationContextImpl txn;
+ ScopedTransaction transaction(&txn, MODE_IX);
Lock::DBLock lk(txn.lockState(), "local", MODE_X);
BSONObj mv;
bool found = Helpers::getSingleton( &txn, minvalidNS, mv);
@@ -72,11 +75,13 @@ namespace {
}
void setMinValid(OperationContext* ctx, OpTime ts) {
+ ScopedTransaction transaction(ctx, MODE_IX);
Lock::DBLock lk(ctx->lockState(), "local", MODE_X);
Helpers::putSingleton(ctx, minvalidNS, BSON("$set" << BSON("ts" << ts)));
}
OpTime getMinValid(OperationContext* txn) {
+ ScopedTransaction transaction(txn, MODE_IS);
Lock::DBLock lk(txn->lockState(), "local", MODE_S);
BSONObj mv;
bool found = Helpers::getSingleton(txn, minvalidNS, mv);