diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2009-11-20 07:47:42 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2009-11-20 07:47:42 +0000 |
| commit | 60e3e46c527fb567522f3fff428b6760b9273884 (patch) | |
| tree | 2f44f9f3bb6bc61d1b228b24d4735a4987971020 /src/AbstractCommand.cc | |
| parent | 39c2b5784234ae16919a73d63606314f2acd3726 (diff) | |
2009-11-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Fixed the bug that slow server is not knocked down in favor of
faster one.
* src/AbstractCommand.cc
* src/DefaultPieceStorage.cc
* src/DefaultPieceStorage.h
* src/PieceStorage.h
* src/UnknownLengthPieceStorage.cc
* src/UnknownLengthPieceStorage.h
* test/MockPieceStorage.h
Diffstat (limited to 'src/AbstractCommand.cc')
| -rw-r--r-- | src/AbstractCommand.cc | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/AbstractCommand.cc b/src/AbstractCommand.cc index 71ebe860..059d0d8b 100644 --- a/src/AbstractCommand.cc +++ b/src/AbstractCommand.cc @@ -105,9 +105,9 @@ bool AbstractCommand::execute() { return true; } // TODO it is not needed to check other PeerStats every time. - // Find faster Request when this is the only active Request - if(!req.isNull() && _requestGroup->getNumStreamConnection() == 1 && - _fileEntry->countPooledRequest() > 0) { + // Find faster Request when no segment is available. + if(!req.isNull() && _fileEntry->countPooledRequest() > 0 && + !_requestGroup->getPieceStorage()->hasMissingUnusedPiece()) { SharedHandle<Request> fasterRequest = _fileEntry->findFasterRequest(req); if(!fasterRequest.isNull()) { logger->info("CUID#%d - Use faster Request hostname=%s, port=%u", |
