diff options
author | Kaloian Manassiev <kaloian.manassiev@mongodb.com> | 2019-01-09 21:22:46 -0500 |
---|---|---|
committer | Kaloian Manassiev <kaloian.manassiev@mongodb.com> | 2019-01-16 09:10:44 -0500 |
commit | cc2fba8d8dfae009369ac9084375c0fc513793d4 (patch) | |
tree | 3b02dd8d82f7a19165d5879e0c9caaa35145e9a7 /src/mongo/executor | |
parent | 75f8c26ace392f77aa35b87faeb2933f8ce6e6ad (diff) | |
download | mongo-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.cpp | 10 | ||||
-rw-r--r-- | src/mongo/executor/network_interface_mock.h | 5 |
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. |