From fe8fea56ca586df592470d82bcec93d7bc8b27ba Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Fri, 5 Mar 2010 14:02:23 +0000 Subject: 2010-03-05 Tatsuhiro Tsujikawa Only execute RequestGroupMan::fillRequestGroupFromReserver() when queue maintenance is requested by RequestGroup to avoid to call the function unnecessarily. * src/FillRequestGroupCommand.cc * src/RequestGroup.cc * src/RequestGroup.h * src/RequestGroupMan.cc * src/RequestGroupMan.h --- src/FillRequestGroupCommand.cc | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) (limited to 'src/FillRequestGroupCommand.cc') diff --git a/src/FillRequestGroupCommand.cc b/src/FillRequestGroupCommand.cc index 7681c5db..13d53c7f 100644 --- a/src/FillRequestGroupCommand.cc +++ b/src/FillRequestGroupCommand.cc @@ -40,6 +40,7 @@ #include "message.h" #include "Logger.h" #include "DownloadContext.h" +#include "ServerStatMan.h" namespace aria2 { @@ -60,13 +61,17 @@ bool FillRequestGroupCommand::execute() if(_e->isHaltRequested()) { return true; } - try { - _e->_requestGroupMan->fillRequestGroupFromReserver(_e); - } catch(RecoverableException& ex) { - logger->error(EX_EXCEPTION_CAUGHT, ex); - } - if(_e->_requestGroupMan->downloadFinished()) { - return true; + SharedHandle rgman = _e->_requestGroupMan; + if(rgman->queueCheckRequested()) { + try { + rgman->fillRequestGroupFromReserver(_e); + rgman->clearQueueCheck(); + } catch(RecoverableException& ex) { + logger->error(EX_EXCEPTION_CAUGHT, ex); + } + if(rgman->downloadFinished()) { + return true; + } } _e->addRoutineCommand(this); return false; -- cgit