aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorleak <leak@bitmx.net>2014-07-21 20:12:20 +0200
committerleak <leak@bitmx.net>2014-07-21 20:12:44 +0200
commit5b0898b33cd6e928d51df003d1ab2b781ee92fbd (patch)
treeb793a05a88d6461734c75c849d9f3eaba60ecdea
parenteae97c7bc897e021a000111e6579183fe123a333 (diff)
Core/DatabaseWorkerPool: Delete PCQ in dtor rather than in Close() and cancel queue properly before doing so
-rw-r--r--src/server/shared/Database/DatabaseWorkerPool.h10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/server/shared/Database/DatabaseWorkerPool.h b/src/server/shared/Database/DatabaseWorkerPool.h
index f0b540022da..a1ee6407fea 100644
--- a/src/server/shared/Database/DatabaseWorkerPool.h
+++ b/src/server/shared/Database/DatabaseWorkerPool.h
@@ -59,6 +59,11 @@ class DatabaseWorkerPool
~DatabaseWorkerPool()
{
+ _queue->Cancel();
+
+ delete _queue;
+
+ delete _connectionInfo;
}
bool Open(const std::string& infoString, uint8 async_threads, uint8 synch_threads)
@@ -122,12 +127,7 @@ class DatabaseWorkerPool
for (uint8 i = 0; i < _connectionCount[IDX_SYNCH]; ++i)
_connections[IDX_SYNCH][i]->Close();
- delete _queue;
-
TC_LOG_INFO("sql.driver", "All connections on DatabasePool '%s' closed.", GetDatabaseName());
-
- delete _connectionInfo;
- _connectionInfo = NULL;
}
/**