From bd85914d92ccab255475dce9d4700abdc8428fb4 Mon Sep 17 00:00:00 2001 From: Machiavelli Date: Thu, 13 Jan 2011 21:30:37 +0100 Subject: Core/DBLayer: Properly manage mysql library initialization and shutdown in authserver and worldserver. Prevent multiple calls and make it more elegant. --- src/server/worldserver/Master.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'src/server/worldserver/Master.cpp') diff --git a/src/server/worldserver/Master.cpp b/src/server/worldserver/Master.cpp index 451aa3c175d..7dd4c1fa930 100755 --- a/src/server/worldserver/Master.cpp +++ b/src/server/worldserver/Master.cpp @@ -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() { -- cgit v1.2.3