diff options
| author | Machiavelli <machiavelli.trinity@gmail.com> | 2011-01-13 21:30:37 +0100 |
|---|---|---|
| committer | Machiavelli <machiavelli.trinity@gmail.com> | 2011-01-13 21:30:37 +0100 |
| commit | bd85914d92ccab255475dce9d4700abdc8428fb4 (patch) | |
| tree | 6d8a41fdd0678ab31977c583c4987c348f401dec /src/server/worldserver/Master.cpp | |
| parent | 4c15ebe09d51d22d98e314302652b66f345a56ff (diff) | |
Core/DBLayer: Properly manage mysql library initialization and shutdown in authserver and worldserver. Prevent multiple calls and make it more elegant.
Diffstat (limited to 'src/server/worldserver/Master.cpp')
| -rwxr-xr-x | src/server/worldserver/Master.cpp | 16 |
1 files changed, 12 insertions, 4 deletions
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() { |
