refactor: shuffle peers before pumping (#8233)

* refactor: shuffle peers before pumping

* code review: use small vector
This commit is contained in:
Yat Ho
2026-01-29 08:11:19 +08:00
committed by GitHub
parent 357004529c
commit ee1634ca47

View File

@@ -2511,12 +2511,17 @@ namespace bandwidth_helpers
{
void pumpAllPeers(tr_peerMgr* mgr)
{
auto peers = small::vector<tr_peerMsgs*, TrDefaultPeerLimitGlobal>{};
for (auto* const tor : mgr->torrents_)
{
for (auto const& peer : tor->swarm->peers)
{
peer->pulse();
}
std::ranges::transform(tor->swarm->peers, std::back_inserter(peers), [](auto const& p) { return p.get(); });
}
thread_local auto urbg = tr_urbg<size_t>{};
std::ranges::shuffle(peers, urbg);
for (auto const& peer : peers)
{
peer->pulse();
}
}
} // namespace bandwidth_helpers