summaryrefslogtreecommitdiff
path: root/src/DownloadCommand.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2007-11-07 12:36:33 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2007-11-07 12:36:33 +0000
commitb4f7588ba285a8e33dc07acfa730491285cba18e (patch)
tree5f0537dee50b0036fd40c2f13fdb4175d28f8b3e /src/DownloadCommand.cc
parentdfd40dff54670fd3768811acf1a38be6c88b009f (diff)
2007-11-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Reflect the download length of in-flight pieces. It makes the download length readout more precise. * src/DefaultPieceStorage.{h, cc} * test/DefaultPieceStorageTest.cc * src/a2functional.h * test/a2functionalTest.cc Lower CPU load when --max-download-limit is used. There is up and down in speed indicator when enabling http-pipelining but a download goes well. I think the problem is that because http-pipelining is enabled, DownloadCommand is created for each segment and in its constructor, PeerStat::downloadStart() is called. In PeerStat::downloadStart(), speed calculation object is reseted, which makes download speed zero. * src/DownloadCommand.cc Rewritten using accumulate. * src/RequestGroupMan.cc (calculateStat) Code clearnup. * src/FtpNegotiationCommand.cc * src/HttpResponseCommand.cc
Diffstat (limited to 'src/DownloadCommand.cc')
-rw-r--r--src/DownloadCommand.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/DownloadCommand.cc b/src/DownloadCommand.cc
index 9e4cb943..9252911b 100644
--- a/src/DownloadCommand.cc
+++ b/src/DownloadCommand.cc
@@ -79,10 +79,11 @@ bool DownloadCommand::executeInternal() {
// TODO we need to specify the sum of all segmentMan's download speed here.
if(maxDownloadSpeedLimit > 0 &&
maxDownloadSpeedLimit < _requestGroup->getSegmentMan()->calculateDownloadSpeed()) {
- Util::usleep(1);
e->commands.push_back(this);
+ disableReadCheckSocket();
return false;
}
+ setReadCheckSocket(socket);
SegmentHandle segment = _segments.front();
int32_t BUFSIZE = 16*1024;