Core/DBLayer: Properly manage mysql library initialization and shutdown in authserver and worldserver. Prevent multiple calls and make it more elegant.

This commit is contained in:
Machiavelli
2011-01-13 21:30:37 +01:00
parent 4c15ebe09d
commit bd85914d92
5 changed files with 36 additions and 10 deletions
+12 -4
View File
@@ -300,10 +300,7 @@ int Master::Run()
///- Clean database before leaving
clearOnlineAccounts();
///- Wait for delay threads to end
CharacterDatabase.Close();
WorldDatabase.Close();
LoginDatabase.Close();
_StopDB();
sLog->outString("Halting process...");
@@ -368,6 +365,8 @@ int Master::Run()
/// Initialize connection to the databases
bool Master::_StartDB()
{
MySQL::Library_Init();
sLog->SetLogDB(false);
std::string dbstring;
uint8 async_threads, synch_threads;
@@ -471,6 +470,15 @@ bool Master::_StartDB()
return true;
}
void Master::_StopDB()
{
CharacterDatabase.Close();
WorldDatabase.Close();
LoginDatabase.Close();
MySQL::Library_End();
}
/// Clear 'online' status for all accounts with characters in this realm
void Master::clearOnlineAccounts()
{
+1
View File
@@ -35,6 +35,7 @@ class Master
private:
bool _StartDB();
void _StopDB();
void clearOnlineAccounts();
};