summaryrefslogtreecommitdiff
path: root/src/FillRequestGroupCommand.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/FillRequestGroupCommand.cc')
-rw-r--r--src/FillRequestGroupCommand.cc19
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;