dout(10) << ": peer=" << peer << dendl;
std::scoped_lock locker(m_lock);
+ m_all_peers.emplace(peer);
auto p = m_peer_replayers.emplace(peer, PeerReplayer());
ceph_assert(m_peer_replayers.size() == 1); // support only a single peer
if (p.second) {
dout(10) << ": peer=" << peer << dendl;
std::unique_lock locker(m_lock);
+ m_all_peers.erase(peer);
auto it = m_peer_replayers.find(peer);
if (it != m_peer_replayers.end()) {
dout(5) << ": shutting down replayers for peer=" << peer << dendl;
}
Peers get_peers() {
- Peers peers;
std::scoped_lock locker(m_lock);
- for ([[maybe_unused]] auto &[peer, peer_replayer] : m_peer_replayers) {
- peers.emplace(peer);
- }
- return peers;
+ return m_all_peers;
}
// admin socket helpers
ceph::condition_variable m_cond;
SnapListener m_snap_listener;
std::set<std::string, std::less<>> m_directories;
+ Peers m_all_peers;
std::map<Peer, PeerReplayer> m_peer_replayers;
RadosRef m_cluster;