2010-09-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>

Call RequestGroupMan::fillRequestGroupFromReserver() repeatedly
	while RequestGroupMan::requestQueueCheck() is true.
	* src/FillRequestGroupCommand.cc
pull/1/head
Tatsuhiro Tsujikawa 2010-09-08 14:42:03 +00:00
parent c51815dd52
commit 420500f6bf
2 changed files with 19 additions and 11 deletions

View File

@ -1,3 +1,9 @@
2010-09-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Call RequestGroupMan::fillRequestGroupFromReserver() repeatedly
while RequestGroupMan::requestQueueCheck() is true.
* src/FillRequestGroupCommand.cc
2010-09-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> 2010-09-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Use const ref Use const ref

View File

@ -63,17 +63,19 @@ bool FillRequestGroupCommand::execute()
} }
SharedHandle<RequestGroupMan> rgman = e_->getRequestGroupMan(); SharedHandle<RequestGroupMan> rgman = e_->getRequestGroupMan();
if(rgman->queueCheckRequested()) { if(rgman->queueCheckRequested()) {
try { while(rgman->queueCheckRequested()) {
// During adding RequestGroup, try {
// RequestGroupMan::requestQueueCheck() might be called, so // During adding RequestGroup,
// first clear it here. // RequestGroupMan::requestQueueCheck() might be called, so
rgman->clearQueueCheck(); // first clear it here.
rgman->fillRequestGroupFromReserver(e_); rgman->clearQueueCheck();
} catch(RecoverableException& ex) { rgman->fillRequestGroupFromReserver(e_);
getLogger()->error(EX_EXCEPTION_CAUGHT, ex); } catch(RecoverableException& ex) {
// Re-request queue check to fulfill the requests of all getLogger()->error(EX_EXCEPTION_CAUGHT, ex);
// downloads, some might come after this exception. // Re-request queue check to fulfill the requests of all
rgman->requestQueueCheck(); // downloads, some might come after this exception.
rgman->requestQueueCheck();
}
} }
if(rgman->downloadFinished()) { if(rgman->downloadFinished()) {
return true; return true;