aboutsummaryrefslogtreecommitdiff
path: root/src/server/worldserver/Master.cpp
diff options
context:
space:
mode:
authorMachiavelli <machiavelli.trinity@gmail.com>2011-01-13 21:30:37 +0100
committerMachiavelli <machiavelli.trinity@gmail.com>2011-01-13 21:30:37 +0100
commitbd85914d92ccab255475dce9d4700abdc8428fb4 (patch)
tree6d8a41fdd0678ab31977c583c4987c348f401dec /src/server/worldserver/Master.cpp
parent4c15ebe09d51d22d98e314302652b66f345a56ff (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-xsrc/server/worldserver/Master.cpp16
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()
{