diff options
author | QAston <none@none> | 2009-06-27 18:00:15 +0200 |
---|---|---|
committer | QAston <none@none> | 2009-06-27 18:00:15 +0200 |
commit | 8be2a1f51b170b45c95db2a1c1d1b785f0e34e37 (patch) | |
tree | 8fb64052ba1c5712578a741b1616cbcb3792ad96 /src/shared/Database/SqlDelayThread.cpp | |
parent | 122edd64fe7bd6bb80a92d4b06cd3ac5443a7fa4 (diff) | |
parent | 1592fe9aa3ee51a27438c6b8fb52d4a0a3c681e5 (diff) |
*Merge.
--HG--
branch : trunk
Diffstat (limited to 'src/shared/Database/SqlDelayThread.cpp')
-rw-r--r-- | src/shared/Database/SqlDelayThread.cpp | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/src/shared/Database/SqlDelayThread.cpp b/src/shared/Database/SqlDelayThread.cpp index f36cf4940ce..9a92fd5dd63 100644 --- a/src/shared/Database/SqlDelayThread.cpp +++ b/src/shared/Database/SqlDelayThread.cpp @@ -22,10 +22,8 @@ #include "Database/SqlOperations.h" #include "DatabaseEnv.h" -SqlDelayThread::SqlDelayThread(Database* db, const char* infoString) :m_running(true) +SqlDelayThread::SqlDelayThread(Database* db) : m_dbEngine(db), m_running(true) { - m_dbEngine = new DatabaseType; - ((DatabaseType*)m_dbEngine)->Initialize(infoString, false); } void SqlDelayThread::run() @@ -37,16 +35,15 @@ void SqlDelayThread::run() while (m_running) { - try + // if the running state gets turned off while sleeping + // empty the queue before exiting + ACE_Based::Thread::Sleep(10); + while (!m_sqlQueue.empty()) { s = m_sqlQueue.next(); + s->Execute(m_dbEngine); + delete s; } - catch(...) - {continue;} - if(!s) - continue; - s->Execute(m_dbEngine); - delete s; } #ifndef DO_POSTGRESQL @@ -57,6 +54,5 @@ void SqlDelayThread::run() void SqlDelayThread::Stop() { m_running = false; - m_sqlQueue.cancel(); } |