diff options
Diffstat (limited to 'src/DHTTaskQueueImpl.cc')
| -rw-r--r-- | src/DHTTaskQueueImpl.cc | 51 |
1 files changed, 26 insertions, 25 deletions
diff --git a/src/DHTTaskQueueImpl.cc b/src/DHTTaskQueueImpl.cc index 65cff073..2c46f514 100644 --- a/src/DHTTaskQueueImpl.cc +++ b/src/DHTTaskQueueImpl.cc @@ -34,51 +34,52 @@ /* copyright --> */ #include "DHTTaskQueueImpl.h" #include "DHTTask.h" +#include "Logger.h" +#include "LogFactory.h" namespace aria2 { -DHTTaskQueueImpl::DHTTaskQueueImpl() {} +namespace { +const size_t NUM_CONCURRENT_TASK = 5; +} -DHTTaskQueueImpl::~DHTTaskQueueImpl() {} +DHTTaskQueueImpl::DHTTaskQueueImpl(): + periodicTaskQueue1_(NUM_CONCURRENT_TASK), + periodicTaskQueue2_(NUM_CONCURRENT_TASK), + immediateTaskQueue_(NUM_CONCURRENT_TASK), + logger_(LogFactory::getInstance()) {} -void DHTTaskQueueImpl::executeTask(SharedHandle<DHTTask>& task, - std::deque<SharedHandle<DHTTask> >& taskQueue) -{ - while(1) { - if(task.isNull() || task->finished()) { - task.reset(); - if(taskQueue.empty()) { - break; - } - task = taskQueue.front(); - taskQueue.erase(taskQueue.begin()); - task->startup(); - } else { - break; - } - } -} +DHTTaskQueueImpl::~DHTTaskQueueImpl() {} void DHTTaskQueueImpl::executeTask() { - executeTask(periodicTask1_, periodicTaskQueue1_); - executeTask(periodicTask2_, periodicTaskQueue2_); - executeTask(immediateTask_, immediateTaskQueue_); + if(logger_->debug()) { + logger_->debug("Updating periodicTaskQueue1"); + } + periodicTaskQueue1_.update(); + if(logger_->debug()) { + logger_->debug("Updating periodicTaskQueue2"); + } + periodicTaskQueue2_.update(); + if(logger_->debug()) { + logger_->debug("Updating immediateTaskQueue"); + } + immediateTaskQueue_.update(); } void DHTTaskQueueImpl::addPeriodicTask1(const SharedHandle<DHTTask>& task) { - periodicTaskQueue1_.push_back(task); + periodicTaskQueue1_.addTask(task); } void DHTTaskQueueImpl::addPeriodicTask2(const SharedHandle<DHTTask>& task) { - periodicTaskQueue2_.push_back(task); + periodicTaskQueue2_.addTask(task); } void DHTTaskQueueImpl::addImmediateTask(const SharedHandle<DHTTask>& task) { - immediateTaskQueue_.push_back(task); + immediateTaskQueue_.addTask(task); } } // namespace aria2 |
