summaryrefslogtreecommitdiff
path: root/src/mongo/client/streamable_replica_set_monitor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/client/streamable_replica_set_monitor.cpp')
-rw-r--r--src/mongo/client/streamable_replica_set_monitor.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/mongo/client/streamable_replica_set_monitor.cpp b/src/mongo/client/streamable_replica_set_monitor.cpp
index f716bb71d67..4c93f2b4238 100644
--- a/src/mongo/client/streamable_replica_set_monitor.cpp
+++ b/src/mongo/client/streamable_replica_set_monitor.cpp
@@ -143,6 +143,7 @@ void StreamableReplicaSetMonitor::init() {
_eventsPublisher = std::make_shared<sdam::TopologyEventsPublisher>(_executor);
_topologyManager = std::make_unique<TopologyManager>(
_sdamConfig, getGlobalServiceContext()->getPreciseClockSource(), _eventsPublisher);
+
_isMasterMonitor = std::make_unique<ServerIsMasterMonitor>(
_uri, _sdamConfig, _eventsPublisher, _topologyManager->getTopologyDescription(), _executor);
@@ -155,10 +156,10 @@ void StreamableReplicaSetMonitor::init() {
void StreamableReplicaSetMonitor::drop() {
stdx::lock_guard lock(_mutex);
- if (_isDropped.load())
+ if (_isDropped.swap(true)) {
return;
+ }
- _isDropped.store(true);
LOG(kDefaultLogLevel) << _logPrefix() << "Closing Replica Set Monitor";
_eventsPublisher->close();
_queryProcessor->shutdown();