aboutsummaryrefslogtreecommitdiff
path: root/src/shared/Database/SqlOperations.cpp
diff options
context:
space:
mode:
authorthenecromancer <none@none>2010-02-01 10:23:18 +0100
committerthenecromancer <none@none>2010-02-01 10:23:18 +0100
commitfd5f1e554d830de7b968707efaa99c4075aeb35c (patch)
tree4baafaa565050d9c17e9e94f0c29477c92387951 /src/shared/Database/SqlOperations.cpp
parentadfce8fec4a30ee578a11bfe44e3036de28df8a2 (diff)
Use recursive thread mutex for SQL transaction queue
--HG-- branch : trunk
Diffstat (limited to 'src/shared/Database/SqlOperations.cpp')
-rw-r--r--src/shared/Database/SqlOperations.cpp13
1 files changed, 4 insertions, 9 deletions
diff --git a/src/shared/Database/SqlOperations.cpp b/src/shared/Database/SqlOperations.cpp
index 793fabecde7..d657c667913 100644
--- a/src/shared/Database/SqlOperations.cpp
+++ b/src/shared/Database/SqlOperations.cpp
@@ -33,22 +33,17 @@ void SqlStatement::Execute(Database *db)
void SqlTransaction::Execute(Database *db)
{
- if(m_queue.empty())
- return;
+ const char *sql;
db->DirectExecute("START TRANSACTION");
- while(!m_queue.empty())
+ while(m_queue.next(sql))
{
- char const *sql = m_queue.front();
- m_queue.pop();
-
if(!db->DirectExecute(sql))
{
free((void*)const_cast<char*>(sql));
db->DirectExecute("ROLLBACK");
- while(!m_queue.empty())
+ while(m_queue.next(sql))
{
- free((void*)const_cast<char*>(m_queue.front()));
- m_queue.pop();
+ free((void*)const_cast<char*>(sql));
}
return;
}