commit bec8855cff19d05a0282f85acd5b52b76dcdef3e
parent b16f81abb030c8a8863574f43b8c34ec3bbb79aa
Author: cfillion <cfillion@users.noreply.github.com>
Date: Sun, 22 May 2016 16:40:35 -0400
transaction: don't crash when cancelling a transaction in some cases
Diffstat:
1 file changed, 4 insertions(+), 0 deletions(-)
diff --git a/src/transaction.cpp b/src/transaction.cpp
@@ -42,9 +42,13 @@ Transaction::Transaction()
m_downloadQueue.onAbort([=] {
m_isCancelled = true;
+ // clear the registration queue
+ queue<HostTicket>().swap(m_regQueue);
+
for(Task *task : m_tasks)
task->rollback();
+ // some downloads may run for a few ms more
if(m_downloadQueue.idle())
finish();
});