Browse Source

Added upper limit of the number of peer added by each addPeer(vector) call.

Tatsuhiro Tsujikawa 14 years ago
parent
commit
97fde60f3e
1 changed files with 6 additions and 2 deletions
  1. 6 2
      src/DefaultPeerStorage.cc

+ 6 - 2
src/DefaultPeerStorage.cc

@@ -51,7 +51,10 @@
 namespace aria2 {
 
 namespace {
-const int MAX_PEER_LIST_SIZE = 1024;
+
+const size_t MAX_PEER_LIST_SIZE = 1024;
+const size_t MAX_PEER_LIST_UPDATE = 100;
+
 } // namespace
 
 DefaultPeerStorage::DefaultPeerStorage()
@@ -110,8 +113,9 @@ bool DefaultPeerStorage::addPeer(const SharedHandle<Peer>& peer) {
 void DefaultPeerStorage::addPeer(const std::vector<SharedHandle<Peer> >& peers)
 {
   size_t added = 0;
+  size_t addMax = std::min(maxPeerListSize_, MAX_PEER_LIST_UPDATE);
   for(std::vector<SharedHandle<Peer> >::const_iterator itr = peers.begin(),
-        eoi = peers.end(); itr != eoi && added < maxPeerListSize_; ++itr) {
+        eoi = peers.end(); itr != eoi && added < addMax; ++itr) {
     const SharedHandle<Peer>& peer = *itr;
     if(isPeerAlreadyAdded(peer)) {
       A2_LOG_DEBUG(fmt("Adding %s:%u is rejected because it has been already"