diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2016-10-07 15:38:08 +0200 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2016-10-07 15:38:08 +0200 |
commit | 8499c2d29b082f35ac2eb55f7633e0d4103cefe5 (patch) | |
tree | a85e7ab63f8cc96f71d6aca979c3f8d22ca76086 /common/listener.cpp | |
parent | 53d571a4ba75474a6d12d0de6b4059c83578e94b (diff) | |
download | sink-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.cpp | 5 |
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: |