summaryrefslogtreecommitdiffstats
path: root/common/listener.cpp
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2016-10-07 15:38:08 +0200
committerChristian Mollekopf <chrigi_1@fastmail.fm>2016-10-07 15:38:08 +0200
commit8499c2d29b082f35ac2eb55f7633e0d4103cefe5 (patch)
treea85e7ab63f8cc96f71d6aca979c3f8d22ca76086 /common/listener.cpp
parent53d571a4ba75474a6d12d0de6b4059c83578e94b (diff)
downloadsink-8499c2d29b082f35ac2eb55f7633e0d4103cefe5.tar.gz
sink-8499c2d29b082f35ac2eb55f7633e0d4103cefe5.zip
Avoid using the resource object to remove the data from disk.
...because creating it will potentially start transactions on the database we're about to remove.
Diffstat (limited to 'common/listener.cpp')
-rw-r--r--common/listener.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/common/listener.cpp b/common/listener.cpp
index db9b21b..1a8f392 100644
--- a/common/listener.cpp
+++ b/common/listener.cpp
@@ -294,8 +294,11 @@ void Listener::processCommand(int commandId, uint messageId, const QByteArray &c
294 } break; 294 } break;
295 case Sink::Commands::RemoveFromDiskCommand: { 295 case Sink::Commands::RemoveFromDiskCommand: {
296 SinkLog() << QString("Received a remove from disk command from %1").arg(client.name); 296 SinkLog() << QString("Received a remove from disk command from %1").arg(client.name);
297 //Close the resource to ensure no transactions are open
297 m_resource.reset(nullptr); 298 m_resource.reset(nullptr);
298 loadResource().removeDataFromDisk(); 299 if (Sink::ResourceFactory *resourceFactory = Sink::ResourceFactory::load(m_resourceName)) {
300 resourceFactory->removeDataFromDisk(m_resourceInstanceIdentifier);
301 }
299 m_exiting = true; 302 m_exiting = true;
300 } break; 303 } break;
301 default: 304 default: