2010-07-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>

After change request to faster one, wait at least 10 seconds.
	* src/FileEntry.cc
	* src/FileEntry.h
pull/1/head
Tatsuhiro Tsujikawa 2010-07-11 14:17:05 +00:00
parent 20cea7f693
commit f98a180323
3 changed files with 13 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2010-07-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
After change request to faster one, wait at least 10 seconds.
* src/FileEntry.cc
* src/FileEntry.h
2010-07-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Fixed ChunkedDecoder. It does not read trailer and final CRLF.

View File

@ -52,6 +52,7 @@ FileEntry::FileEntry(const std::string& path,
offset_(offset),
requested_(true),
singleHostMultiConnection_(true),
lastFasterReplace_(0),
logger_(LogFactory::getInstance()) {}
FileEntry::FileEntry():
@ -163,7 +164,9 @@ FileEntry::getRequest
SharedHandle<Request>
FileEntry::findFasterRequest(const SharedHandle<Request>& base)
{
if(requestPool_.empty()) {
const int startupIdleTime = 10;
if(requestPool_.empty() ||
lastFasterReplace_.difference(global::wallclock) < startupIdleTime) {
return SharedHandle<Request>();
}
const SharedHandle<PeerStat>& fastest = requestPool_.front()->getPeerStat();
@ -172,7 +175,6 @@ FileEntry::findFasterRequest(const SharedHandle<Request>& base)
}
const SharedHandle<PeerStat>& basestat = base->getPeerStat();
// TODO hard coded value. See PREF_STARTUP_IDLE_TIME
const int startupIdleTime = 10;
if(basestat.isNull() ||
(basestat->getDownloadStartTime().
difference(global::wallclock) >= startupIdleTime &&
@ -181,6 +183,7 @@ FileEntry::findFasterRequest(const SharedHandle<Request>& base)
SharedHandle<Request> fastestRequest = requestPool_.front();
requestPool_.pop_front();
inFlightRequests_.push_back(fastestRequest);
lastFasterReplace_.reset();
return fastestRequest;
}
return SharedHandle<Request>();

View File

@ -48,6 +48,7 @@
#include "URIResult.h"
#include "DownloadResultCode.h"
#include "A2STR.h"
#include "TimerA2.h"
namespace aria2 {
@ -71,6 +72,7 @@ private:
std::deque<URIResult> uriResults_;
bool singleHostMultiConnection_;
std::string originalName_;
Timer lastFasterReplace_;
Logger* logger_;
void storePool(const SharedHandle<Request>& request);