From 1f4be9798e52f75419840c57459effcd59fcf308 Mon Sep 17 00:00:00 2001 From: David Anderson Date: Sun, 1 Nov 2015 00:36:20 -0700 Subject: [PATCH] Flush asynchronous queries before OnPluginEnd(). --- core/logic/Database.cpp | 6 ++---- core/logic/Database.h | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/core/logic/Database.cpp b/core/logic/Database.cpp index c7dd38d4..c9a024a7 100644 --- a/core/logic/Database.cpp +++ b/core/logic/Database.cpp @@ -693,7 +693,7 @@ void DBManager::OnSourceModIdentityDropped(IdentityToken_t *pToken) s_pAddBlock = NULL; } -void DBManager::OnPluginUnloaded(IPlugin *plugin) +void DBManager::OnPluginWillUnload(IPlugin *plugin) { /* Kill the thread so we can flush everything into the think queue... */ KillWorkerThread(); @@ -719,9 +719,7 @@ void DBManager::OnPluginUnloaded(IPlugin *plugin) } } - for (iter = templist.begin(); - iter != templist.end(); - iter++) + for (iter = templist.begin(); iter != templist.end(); iter++) { IDBThreadOperation *op = (*iter); op->RunThinkPart(); diff --git a/core/logic/Database.h b/core/logic/Database.h index ecd9a417..85946e38 100644 --- a/core/logic/Database.h +++ b/core/logic/Database.h @@ -101,7 +101,7 @@ public: //ke::IRunnable void Run(); void ThreadMain(); public: //IPluginsListener - void OnPluginUnloaded(IPlugin *plugin); + void OnPluginWillUnload(IPlugin *plugin); public: ConfDbInfo *GetDatabaseConf(const char *name); IDBDriver *FindOrLoadDriver(const char *name);