aboutsummaryrefslogtreecommitdiff
path: root/src/shared/Database/SqlDelayThread.cpp
diff options
context:
space:
mode:
authorQAston <none@none>2009-06-27 18:00:15 +0200
committerQAston <none@none>2009-06-27 18:00:15 +0200
commit8be2a1f51b170b45c95db2a1c1d1b785f0e34e37 (patch)
tree8fb64052ba1c5712578a741b1616cbcb3792ad96 /src/shared/Database/SqlDelayThread.cpp
parent122edd64fe7bd6bb80a92d4b06cd3ac5443a7fa4 (diff)
parent1592fe9aa3ee51a27438c6b8fb52d4a0a3c681e5 (diff)
*Merge.
--HG-- branch : trunk
Diffstat (limited to 'src/shared/Database/SqlDelayThread.cpp')
-rw-r--r--src/shared/Database/SqlDelayThread.cpp18
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();
}