summaryrefslogtreecommitdiff
path: root/src/FillRequestGroupCommand.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2010-03-08 15:01:45 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2010-03-08 15:01:45 +0000
commit587be5119ca2260269a92b5e5c0a1310b87c780a (patch)
treebbca03d2b0c4b60e10cd5d40fd8051e49131f11c /src/FillRequestGroupCommand.cc
parent2c2d19d5d53d44a9ae33609da1f6e78571b9b3bd (diff)
2010-03-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Fixed the bug that FillRequestGroupCommand is not invoked when RequestGroupMan::createInitialCommand() creates no Command object. * src/FillRequestGroupCommand.cc * src/RequestGroupMan.cc
Diffstat (limited to 'src/FillRequestGroupCommand.cc')
-rw-r--r--src/FillRequestGroupCommand.cc8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/FillRequestGroupCommand.cc b/src/FillRequestGroupCommand.cc
index 13d53c7f..34f56f3e 100644
--- a/src/FillRequestGroupCommand.cc
+++ b/src/FillRequestGroupCommand.cc
@@ -64,10 +64,16 @@ bool FillRequestGroupCommand::execute()
SharedHandle<RequestGroupMan> rgman = _e->_requestGroupMan;
if(rgman->queueCheckRequested()) {
try {
- rgman->fillRequestGroupFromReserver(_e);
+ // During adding RequestGroup,
+ // RequestGroupMan::requestQueueCheck() might be called, so
+ // first clear it here.
rgman->clearQueueCheck();
+ rgman->fillRequestGroupFromReserver(_e);
} catch(RecoverableException& ex) {
logger->error(EX_EXCEPTION_CAUGHT, ex);
+ // Re-request queue check to fulfill the requests of all
+ // downloads, some might come after this exception.
+ rgman->requestQueueCheck();
}
if(rgman->downloadFinished()) {
return true;