diff --git a/src/server/shared/Database/DatabaseWorker.cpp b/src/server/shared/Database/DatabaseWorker.cpp index 248e3c20d1..209ca35aba 100644 --- a/src/server/shared/Database/DatabaseWorker.cpp +++ b/src/server/shared/Database/DatabaseWorker.cpp @@ -47,6 +47,5 @@ int DatabaseWorker::svc() delete request; } - m_conn->Close(); return 0; } diff --git a/src/server/shared/Database/DatabaseWorkerPool.h b/src/server/shared/Database/DatabaseWorkerPool.h index 27a5c051cc..9f0e51b429 100755 --- a/src/server/shared/Database/DatabaseWorkerPool.h +++ b/src/server/shared/Database/DatabaseWorkerPool.h @@ -109,9 +109,9 @@ class DatabaseWorkerPool /// Now we just wait until m_queue gives the signal to the worker threads to stop T* t = m_connections[IDX_ASYNC][i]; DatabaseWorker* worker = t->m_worker; - worker->wait(); // t->Close(); is called from worker thread + worker->wait(); delete worker; - --m_connectionCount[IDX_ASYNC]; + t->Close(); } sLog->outSQLDriver("Asynchronous connections on databasepool '%s' terminated. Proceeding with synchronous connections.", m_connectionInfo.database.c_str()); @@ -123,7 +123,6 @@ class DatabaseWorkerPool //while (1) // if (t->LockIfReady()) -- For some reason deadlocks us t->Close(); - --m_connectionCount[IDX_SYNCH]; } sLog->outSQLDriver("All connections on databasepool %s closed.", m_connectionInfo.database.c_str());