summaryrefslogtreecommitdiff
path: root/src/mongo/client/server_ping_monitor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/client/server_ping_monitor.cpp')
-rw-r--r--src/mongo/client/server_ping_monitor.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/mongo/client/server_ping_monitor.cpp b/src/mongo/client/server_ping_monitor.cpp
index 65a8ae90c63..ae3527eb152 100644
--- a/src/mongo/client/server_ping_monitor.cpp
+++ b/src/mongo/client/server_ping_monitor.cpp
@@ -71,7 +71,9 @@ void SingleServerPingMonitor::init() {
void SingleServerPingMonitor::drop() {
stdx::lock_guard lk(_mutex);
- _isDropped = true;
+ if (std::exchange(_isDropped, true)) {
+ return;
+ }
if (auto handle = std::exchange(_pingHandle, {})) {
_executor->cancel(handle);
}