mirror of https://github.com/aria2/aria2
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.hpull/1/head
parent
20cea7f693
commit
f98a180323
|
@ -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>
|
2010-07-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
|
||||||
|
|
||||||
Fixed ChunkedDecoder. It does not read trailer and final CRLF.
|
Fixed ChunkedDecoder. It does not read trailer and final CRLF.
|
||||||
|
|
|
@ -52,6 +52,7 @@ FileEntry::FileEntry(const std::string& path,
|
||||||
offset_(offset),
|
offset_(offset),
|
||||||
requested_(true),
|
requested_(true),
|
||||||
singleHostMultiConnection_(true),
|
singleHostMultiConnection_(true),
|
||||||
|
lastFasterReplace_(0),
|
||||||
logger_(LogFactory::getInstance()) {}
|
logger_(LogFactory::getInstance()) {}
|
||||||
|
|
||||||
FileEntry::FileEntry():
|
FileEntry::FileEntry():
|
||||||
|
@ -163,7 +164,9 @@ FileEntry::getRequest
|
||||||
SharedHandle<Request>
|
SharedHandle<Request>
|
||||||
FileEntry::findFasterRequest(const SharedHandle<Request>& base)
|
FileEntry::findFasterRequest(const SharedHandle<Request>& base)
|
||||||
{
|
{
|
||||||
if(requestPool_.empty()) {
|
const int startupIdleTime = 10;
|
||||||
|
if(requestPool_.empty() ||
|
||||||
|
lastFasterReplace_.difference(global::wallclock) < startupIdleTime) {
|
||||||
return SharedHandle<Request>();
|
return SharedHandle<Request>();
|
||||||
}
|
}
|
||||||
const SharedHandle<PeerStat>& fastest = requestPool_.front()->getPeerStat();
|
const SharedHandle<PeerStat>& fastest = requestPool_.front()->getPeerStat();
|
||||||
|
@ -172,7 +175,6 @@ FileEntry::findFasterRequest(const SharedHandle<Request>& base)
|
||||||
}
|
}
|
||||||
const SharedHandle<PeerStat>& basestat = base->getPeerStat();
|
const SharedHandle<PeerStat>& basestat = base->getPeerStat();
|
||||||
// TODO hard coded value. See PREF_STARTUP_IDLE_TIME
|
// TODO hard coded value. See PREF_STARTUP_IDLE_TIME
|
||||||
const int startupIdleTime = 10;
|
|
||||||
if(basestat.isNull() ||
|
if(basestat.isNull() ||
|
||||||
(basestat->getDownloadStartTime().
|
(basestat->getDownloadStartTime().
|
||||||
difference(global::wallclock) >= startupIdleTime &&
|
difference(global::wallclock) >= startupIdleTime &&
|
||||||
|
@ -181,6 +183,7 @@ FileEntry::findFasterRequest(const SharedHandle<Request>& base)
|
||||||
SharedHandle<Request> fastestRequest = requestPool_.front();
|
SharedHandle<Request> fastestRequest = requestPool_.front();
|
||||||
requestPool_.pop_front();
|
requestPool_.pop_front();
|
||||||
inFlightRequests_.push_back(fastestRequest);
|
inFlightRequests_.push_back(fastestRequest);
|
||||||
|
lastFasterReplace_.reset();
|
||||||
return fastestRequest;
|
return fastestRequest;
|
||||||
}
|
}
|
||||||
return SharedHandle<Request>();
|
return SharedHandle<Request>();
|
||||||
|
|
|
@ -48,6 +48,7 @@
|
||||||
#include "URIResult.h"
|
#include "URIResult.h"
|
||||||
#include "DownloadResultCode.h"
|
#include "DownloadResultCode.h"
|
||||||
#include "A2STR.h"
|
#include "A2STR.h"
|
||||||
|
#include "TimerA2.h"
|
||||||
|
|
||||||
namespace aria2 {
|
namespace aria2 {
|
||||||
|
|
||||||
|
@ -71,6 +72,7 @@ private:
|
||||||
std::deque<URIResult> uriResults_;
|
std::deque<URIResult> uriResults_;
|
||||||
bool singleHostMultiConnection_;
|
bool singleHostMultiConnection_;
|
||||||
std::string originalName_;
|
std::string originalName_;
|
||||||
|
Timer lastFasterReplace_;
|
||||||
Logger* logger_;
|
Logger* logger_;
|
||||||
|
|
||||||
void storePool(const SharedHandle<Request>& request);
|
void storePool(const SharedHandle<Request>& request);
|
||||||
|
|
Loading…
Reference in New Issue