summaryrefslogtreecommitdiff
path: root/src/mongo/executor
diff options
context:
space:
mode:
authorKaloian Manassiev <kaloian.manassiev@mongodb.com>2019-01-09 21:22:46 -0500
committerKaloian Manassiev <kaloian.manassiev@mongodb.com>2019-01-16 09:10:44 -0500
commitcc2fba8d8dfae009369ac9084375c0fc513793d4 (patch)
tree3b02dd8d82f7a19165d5879e0c9caaa35145e9a7 /src/mongo/executor
parent75f8c26ace392f77aa35b87faeb2933f8ce6e6ad (diff)
downloadmongo-cc2fba8d8dfae009369ac9084375c0fc513793d4.tar.gz
SERVER-37880 Introduce backoff for retrying commit and abort messages
Diffstat (limited to 'src/mongo/executor')
-rw-r--r--src/mongo/executor/network_interface_mock.cpp10
-rw-r--r--src/mongo/executor/network_interface_mock.h5
2 files changed, 15 insertions, 0 deletions
diff --git a/src/mongo/executor/network_interface_mock.cpp b/src/mongo/executor/network_interface_mock.cpp
index ed9d67ea536..f700f6c211e 100644
--- a/src/mongo/executor/network_interface_mock.cpp
+++ b/src/mongo/executor/network_interface_mock.cpp
@@ -420,6 +420,16 @@ Date_t NetworkInterfaceMock::runUntil(Date_t until) {
return _now_inlock();
}
+void NetworkInterfaceMock::advanceTime(Date_t newTime) {
+ stdx::unique_lock<stdx::mutex> lk(_mutex);
+ invariant(_currentlyRunning == kNetworkThread);
+ invariant(newTime > _now_inlock());
+ _now = newTime;
+
+ _waitingToRunMask |= kExecutorThread;
+ _runReadyNetworkOperations_inlock(&lk);
+}
+
void NetworkInterfaceMock::runReadyNetworkOperations() {
stdx::unique_lock<stdx::mutex> lk(_mutex);
invariant(_currentlyRunning == kNetworkThread);
diff --git a/src/mongo/executor/network_interface_mock.h b/src/mongo/executor/network_interface_mock.h
index 621a44a02c5..937bed41525 100644
--- a/src/mongo/executor/network_interface_mock.h
+++ b/src/mongo/executor/network_interface_mock.h
@@ -253,6 +253,11 @@ public:
Date_t runUntil(Date_t until);
/**
+ * Runs the simulator forward until now() == until.
+ */
+ void advanceTime(Date_t newTime);
+
+ /**
* Processes all ready, scheduled network operations.
*
* Will not return until the executor thread is blocked in waitForWorkUntil or waitForWork.