|
@@ -62,8 +62,7 @@ DefaultPeerStorage::DefaultPeerStorage()
|
|
|
: maxPeerListSize_(MAX_PEER_LIST_SIZE),
|
|
|
seederStateChoke_(make_unique<BtSeederStateChoke>()),
|
|
|
leecherStateChoke_(make_unique<BtLeecherStateChoke>()),
|
|
|
- lastTransferStatMapUpdated_(Timer::zero()),
|
|
|
- forceChokeRound_(false)
|
|
|
+ lastTransferStatMapUpdated_(Timer::zero())
|
|
|
{
|
|
|
}
|
|
|
|
|
@@ -285,21 +284,16 @@ void DefaultPeerStorage::returnPeer(const std::shared_ptr<Peer>& peer)
|
|
|
bool DefaultPeerStorage::chokeRoundIntervalElapsed()
|
|
|
{
|
|
|
constexpr auto CHOKE_ROUND_INTERVAL = 10_s;
|
|
|
- auto forceChokeRound = forceChokeRound_;
|
|
|
- forceChokeRound_ = false;
|
|
|
|
|
|
if (pieceStorage_->downloadFinished()) {
|
|
|
- auto interval = forceChokeRound ? 1_s : CHOKE_ROUND_INTERVAL;
|
|
|
return seederStateChoke_->getLastRound().difference(global::wallclock()) >=
|
|
|
- interval;
|
|
|
+ CHOKE_ROUND_INTERVAL;
|
|
|
}
|
|
|
|
|
|
return leecherStateChoke_->getLastRound().difference(global::wallclock()) >=
|
|
|
CHOKE_ROUND_INTERVAL;
|
|
|
}
|
|
|
|
|
|
-void DefaultPeerStorage::scheduleForcedChokeRound() { forceChokeRound_ = true; }
|
|
|
-
|
|
|
void DefaultPeerStorage::executeChoke()
|
|
|
{
|
|
|
if (pieceStorage_->downloadFinished()) {
|