diff --git a/lib/db_ido_mysql/idomysqlconnection.cpp b/lib/db_ido_mysql/idomysqlconnection.cpp index a75bef97d..af32b3db2 100644 --- a/lib/db_ido_mysql/idomysqlconnection.cpp +++ b/lib/db_ido_mysql/idomysqlconnection.cpp @@ -132,8 +132,8 @@ void IdoMysqlConnection::TxTimerHandler(void) void IdoMysqlConnection::NewTransaction(void) { - m_QueryQueue.Enqueue(boost::bind(&IdoMysqlConnection::FinishAsyncQueries, this, true)); m_QueryQueue.Enqueue(boost::bind(&IdoMysqlConnection::InternalNewTransaction, this)); + m_QueryQueue.Enqueue(boost::bind(&IdoMysqlConnection::FinishAsyncQueries, this, true)); } void IdoMysqlConnection::InternalNewTransaction(void) @@ -143,8 +143,8 @@ void IdoMysqlConnection::InternalNewTransaction(void) if (!GetConnected()) return; - Query("COMMIT"); - Query("BEGIN"); + AsyncQuery("COMMIT"); + AsyncQuery("BEGIN"); } void IdoMysqlConnection::ReconnectTimerHandler(void) @@ -382,7 +382,11 @@ void IdoMysqlConnection::AsyncQuery(const String& query, const boost::function 500) + FinishAsyncQueries(true); + else + m_QueryQueue.Enqueue(boost::bind(&IdoMysqlConnection::FinishAsyncQueries, this, false)); } void IdoMysqlConnection::FinishAsyncQueries(bool force)