reapack

Package manager for REAPER
Log | Files | Refs | Submodules | README | LICENSE

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:
Msrc/transaction.cpp | 13++++---------
Msrc/transaction.hpp | 1-
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; };