commit 16e9cb56b1d7f0f3f159c4c22082808096284eaf
parent 8aca0bfe1c3626ee33b06afc5e65c6688fbf1a25
Author: cfillion <cfillion@users.noreply.github.com>
Date: Wed, 4 May 2016 22:09:41 -0400
transaction: don't forget package when uninstallation fails
Diffstat:
2 files changed, 4 insertions(+), 10 deletions(-)
diff --git a/src/transaction.cpp b/src/transaction.cpp
@@ -264,12 +264,11 @@ void Transaction::uninstall(const Registry::Entry &entry)
registerInHost(false, entry);
- // forget the package even if some files cannot be removed,
- // once the pre-run savepoint is released
- m_onRun.connect(bind(&Registry::forget, m_registry, entry));
-
RemoveTask *task = new RemoveTask(files, this);
- task->onCommit([=] { m_receipt.addRemovals(task->removedFiles()); });
+ task->onCommit([=] {
+ m_registry->forget(entry);
+ m_receipt.addRemovals(task->removedFiles());
+ });
addTask(task);
m_receipt.setEnabled(true);
@@ -333,10 +332,6 @@ bool Transaction::runTasks()
{
m_registry->restore();
- // execute code waiting for the savepoint to be released
- m_onRun();
- m_onRun.disconnect_all_slots();
-
while(!m_taskQueue.empty()) {
m_taskQueue.front()->start();
m_taskQueue.pop();
diff --git a/src/transaction.hpp b/src/transaction.hpp
@@ -98,7 +98,6 @@ private:
std::queue<Task *> m_taskQueue;
std::queue<HostTicket> m_regQueue;
- VoidSignal m_onRun;
VoidSignal m_onFinish;
CleanupHandler m_cleanupHandler;
};