summaryrefslogtreecommitdiff
path: root/src/DownloadEngine.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/DownloadEngine.cc')
-rw-r--r--src/DownloadEngine.cc14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/DownloadEngine.cc b/src/DownloadEngine.cc
index 478291ec..5d414462 100644
--- a/src/DownloadEngine.cc
+++ b/src/DownloadEngine.cc
@@ -45,13 +45,13 @@
using namespace std;
-DownloadEngine::DownloadEngine():noWait(false), segmentMan(0) {
- logger = LogFactory::getInstance();
-}
+DownloadEngine::DownloadEngine():logger(LogFactory::getInstance()),
+ noWait(false),
+ _requestGroupMan(0),
+ _fileAllocationMan(0) {}
DownloadEngine::~DownloadEngine() {
cleanQueue();
- delete segmentMan;
}
void DownloadEngine::cleanQueue() {
@@ -69,7 +69,7 @@ void DownloadEngine::executeCommand(Command::STATUS statusFilter)
if(com->execute()) {
delete com;
} else {
- com->setStatusInactive();
+ com->transitStatus();
}
} else {
commands.push_back(com);
@@ -90,7 +90,7 @@ void DownloadEngine::run() {
executeCommand(Command::STATUS_ACTIVE);
}
afterEachIteration();
- if(!noWait && !commands.empty()) {
+ if(!commands.empty()) {
waitData();
}
noWait = false;
@@ -117,7 +117,7 @@ void DownloadEngine::waitData() {
memcpy(&rfds, &rfdset, sizeof(fd_set));
memcpy(&wfds, &wfdset, sizeof(fd_set));
- tv.tv_sec = 1;
+ tv.tv_sec = noWait ? 0 : 1;
tv.tv_usec = 0;
retval = select(fdmax+1, &rfds, &wfds, NULL, &tv);
if(retval > 0) {