summaryrefslogtreecommitdiff
path: root/src/mongo/executor/network_interface_mock.cpp
diff options
context:
space:
mode:
authorErin McNulty <erin.mcnulty@mongodb.com>2022-08-12 14:30:26 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2022-08-12 15:20:17 +0000
commit08feb76700a9111aa8073c163b179ec05f4405e9 (patch)
treea8ccfa4fa58c87b43c9ec150a41158553f9863e5 /src/mongo/executor/network_interface_mock.cpp
parent4dab09abbd181f8aec42e1be7d27dc3ed789da05 (diff)
downloadmongo-08feb76700a9111aa8073c163b179ec05f4405e9.tar.gz
SERVER-68002: Implement skeleton implementation for free function that invokes a hedged remote command
Diffstat (limited to 'src/mongo/executor/network_interface_mock.cpp')
-rw-r--r--src/mongo/executor/network_interface_mock.cpp16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/mongo/executor/network_interface_mock.cpp b/src/mongo/executor/network_interface_mock.cpp
index d639b14ade6..454e7be6fa1 100644
--- a/src/mongo/executor/network_interface_mock.cpp
+++ b/src/mongo/executor/network_interface_mock.cpp
@@ -157,9 +157,12 @@ void NetworkInterfaceMock::_interruptWithResponse_inlock(const CallbackHandle& c
auto matchFn = [&cbHandle](const auto& ops) { return ops.isForCallback(cbHandle); };
auto noi = std::find_if(_operations.begin(), _operations.end(), matchFn);
- // We've effectively observed the NetworkOperation.
- noi->markAsProcessing();
- _scheduleResponse_inlock(noi, _now_inlock(), response);
+ if (!noi->isFinished()) {
+ // We've effectively observed the NetworkOperation.
+ noi->markAsProcessing();
+ _counters.canceled++;
+ _scheduleResponse_inlock(noi, _now_inlock(), response);
+ }
}
Status NetworkInterfaceMock::setAlarm(const TaskExecutor::CallbackHandle& cbHandle,
@@ -601,6 +604,13 @@ void NetworkInterfaceMock::_runReadyNetworkOperations_inlock(stdx::unique_lock<s
"request"_attr = noi->getRequest(),
"response"_attr = response.response);
+ _counters.sent++;
+ if (response.response.status.isOK()) {
+ _counters.succeeded++;
+ } else {
+ _counters.failed++;
+ }
+
if (_metadataHook) {
_metadataHook
->readReplyMetadata(noi->getRequest().opCtx,