diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2010-03-05 14:02:23 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2010-03-05 14:02:23 +0000 |
| commit | fe8fea56ca586df592470d82bcec93d7bc8b27ba (patch) | |
| tree | 8852a13c4339b051f5fa4d013fcf755e238834d2 /src/FillRequestGroupCommand.cc | |
| parent | db4ed87f7a944a8d177ca8c13efc68f127b7b37d (diff) | |
2010-03-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
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
Diffstat (limited to 'src/FillRequestGroupCommand.cc')
| -rw-r--r-- | src/FillRequestGroupCommand.cc | 19 |
1 files changed, 12 insertions, 7 deletions
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<RequestGroupMan> 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; |
