summaryrefslogtreecommitdiff
path: root/src/DownloadEngine.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/DownloadEngine.cc')
-rw-r--r--src/DownloadEngine.cc8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/DownloadEngine.cc b/src/DownloadEngine.cc
index 348efa82..3b70364b 100644
--- a/src/DownloadEngine.cc
+++ b/src/DownloadEngine.cc
@@ -83,6 +83,7 @@ namespace global {
// 2 ... stop signal processed by DownloadEngine
// 3 ... 2nd stop signal(force shutdown) detected
// 4 ... 2nd stop signal processed by DownloadEngine
+// 5 ... main loop exited
volatile sig_atomic_t globalHaltRequested = 0;
} // namespace global
@@ -141,6 +142,13 @@ void executeCommand(std::deque<std::unique_ptr<Command>>& commands,
int DownloadEngine::run(bool oneshot)
{
+ class GHR {
+ public:
+ ~GHR() {
+ global::globalHaltRequested = 5;
+ }
+ } ghr;
+
while(!commands_.empty() || !routineCommands_.empty()) {
if(!commands_.empty()) {
waitData();