diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2013-02-25 21:42:54 +0900 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2013-02-25 21:42:54 +0900 |
| commit | a49397ed19f4dff0bddba555ddd715e3766c488b (patch) | |
| tree | aecfef8a76fc442548f0067eaa588ba6f070b9a3 /src/RequestGroupMan.cc | |
| parent | 2aeb7137d0b8d6d07c9250ec2dc9fbbbef26a599 (diff) | |
Fix infinite loop when size of downloadResults_ exceeds maxDownloadResult_
Diffstat (limited to 'src/RequestGroupMan.cc')
| -rw-r--r-- | src/RequestGroupMan.cc | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/RequestGroupMan.cc b/src/RequestGroupMan.cc index e5cdc095..d232c5e0 100644 --- a/src/RequestGroupMan.cc +++ b/src/RequestGroupMan.cc @@ -883,11 +883,14 @@ void RequestGroupMan::addDownloadResult(const SharedHandle<DownloadResult>& dr) assert(rv); while(downloadResults_.size() > maxDownloadResult_){ DownloadResultList::SeqType::iterator i = downloadResults_.begin(); + // Save last encountered error code so that we can report it + // later. const SharedHandle<DownloadResult>& dr = (*i).second; if(dr->belongsTo == 0 && dr->result != error_code::FINISHED) { removedLastErrorResult_ = dr->result; ++removedErrorResult_; } + downloadResults_.pop_front(); } } |
