diff options
author | Machiavelli <none@none> | 2010-05-26 19:19:06 +0200 |
---|---|---|
committer | Machiavelli <none@none> | 2010-05-26 19:19:06 +0200 |
commit | 7c0f140bb063e587baa4ca58aa0a2c77eff6a91f (patch) | |
tree | a680897544cb58c18cbd101131c136e7b203653e /src/shared/Database/SqlOperations.h | |
parent | 6da6879effad0e7b86c908fe01f14b8448da6db1 (diff) |
Use ´manual´ ACE_Thread_Mutex objects in SQLTransaction class instead of using ACE_Based::LockedQueue.
This will either result in a crash fix caused by underlying operations of ACE_Based::LockedQueue, or at least give us a clearer view at where the crash is coming from.
--HG--
branch : trunk
Diffstat (limited to 'src/shared/Database/SqlOperations.h')
-rw-r--r-- | src/shared/Database/SqlOperations.h | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/shared/Database/SqlOperations.h b/src/shared/Database/SqlOperations.h index dcdada9cb59..f2e09c0c921 100644 --- a/src/shared/Database/SqlOperations.h +++ b/src/shared/Database/SqlOperations.h @@ -57,12 +57,19 @@ class SqlStatement : public SqlOperation class SqlTransaction : public SqlOperation { - typedef ACE_Based::LockedQueue<const char *, ACE_Thread_Mutex> LockedQueue; private: - LockedQueue m_queue; + std::queue<const char*> m_queue; + ACE_Thread_Mutex m_Mutex; public: SqlTransaction() {} - void DelayExecute(const char *sql) { m_queue.add(strdup(sql)); } + void DelayExecute(const char *sql) + { + m_Mutex.acquire(); + char* _sql = strdup(sql); + if (_sql) + m_queue.push(_sql); + m_Mutex.release(); + } void Execute(Database *db); }; |