diff options
author | Shauren <shauren.trinity@gmail.com> | 2024-05-07 12:26:21 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2024-05-07 12:26:21 +0200 |
commit | 83f4763b25891c9fe6c7f01b75cdf0f4ef66fc9a (patch) | |
tree | 2bb87cba0a5b8a0556b002e3ea7bcc472fd9a34d /src/server/worldserver | |
parent | 1db7b9fe563b4381336163953db7041cbe8fc56e (diff) |
Core/Misc: Minor change to make_unique_ptr_with_deleter to make it accept only pointers
Diffstat (limited to 'src/server/worldserver')
-rw-r--r-- | src/server/worldserver/Main.cpp | 37 | ||||
-rw-r--r-- | src/server/worldserver/TCSoap/TCSoap.cpp | 2 |
2 files changed, 19 insertions, 20 deletions
diff --git a/src/server/worldserver/Main.cpp b/src/server/worldserver/Main.cpp index f8eba01c60c..74cd544965e 100644 --- a/src/server/worldserver/Main.cpp +++ b/src/server/worldserver/Main.cpp @@ -309,7 +309,7 @@ extern int main(int argc, char** argv) sRealmList->Initialize(*ioContext, sConfigMgr->GetIntDefault("RealmsStateUpdateDelay", 10)); - auto sRealmListHandle = Trinity::make_unique_ptr_with_deleter(&dummy, [](void*) { sRealmList->Close(); }); + auto sRealmListHandle = Trinity::make_unique_ptr_with_deleter(sRealmList, [](RealmList* realmList) { realmList->Close(); }); LoadRealmInfo(); @@ -323,34 +323,33 @@ extern int main(int argc, char** argv) TC_METRIC_EVENT("events", "Worldserver started", ""); - auto sMetricHandle = Trinity::make_unique_ptr_with_deleter(&dummy, [](void*) + auto sMetricHandle = Trinity::make_unique_ptr_with_deleter(sMetric, [](Metric* metric) { TC_METRIC_EVENT("events", "Worldserver shutdown", ""); - sMetric->Unload(); + metric->Unload(); }); + auto scriptReloadMgrHandle = Trinity::make_unique_ptr_with_deleter(sScriptReloadMgr, [](ScriptReloadMgr* mgr) { mgr->Unload(); }); + sScriptMgr->SetScriptLoader(AddScripts); - auto sScriptMgrHandle = Trinity::make_unique_ptr_with_deleter(&dummy, [](void*) - { - sScriptMgr->Unload(); - sScriptReloadMgr->Unload(); - }); + auto sScriptMgrHandle = Trinity::make_unique_ptr_with_deleter(sScriptMgr, [](ScriptMgr* mgr) { mgr->Unload(); }); // Initialize the World sSecretMgr->Initialize(SECRET_OWNER_WORLDSERVER); if (!sWorld->SetInitialWorldSettings()) return 1; - auto mapManagementHandle = Trinity::make_unique_ptr_with_deleter(&dummy, [](void*) - { - // unload battleground templates before different singletons destroyed - sBattlegroundMgr->DeleteAllBattlegrounds(); + auto instanceLockMgrHandle = Trinity::make_unique_ptr_with_deleter(&sInstanceLockMgr, [](InstanceLockMgr* mgr) { mgr->Unload(); }); - sMapMgr->UnloadAll(); // unload all grids (including locked in memory) - sOutdoorPvPMgr->Die(); - sTerrainMgr.UnloadAll(); - sInstanceLockMgr.Unload(); - }); + auto terrainMgrHandle = Trinity::make_unique_ptr_with_deleter(&sTerrainMgr, [](TerrainMgr* mgr) { mgr->UnloadAll(); }); + + auto outdoorPvpMgrHandle = Trinity::make_unique_ptr_with_deleter(sOutdoorPvPMgr, [](OutdoorPvPMgr* mgr) { mgr->Die(); }); + + // unload all grids (including locked in memory) + auto mapManagementHandle = Trinity::make_unique_ptr_with_deleter(sMapMgr, [](MapManager* mgr) { mgr->UnloadAll(); }); + + // unload battleground templates before different singletons destroyed + auto battlegroundMgrHandle = Trinity::make_unique_ptr_with_deleter(sBattlegroundMgr, [](BattlegroundMgr* mgr) { mgr->DeleteAllBattlegrounds(); }); // Start the Remote Access port (acceptor) if enabled std::unique_ptr<AsyncAcceptor> raAcceptor; @@ -388,12 +387,12 @@ extern int main(int argc, char** argv) return 1; } - auto sWorldSocketMgrHandle = Trinity::make_unique_ptr_with_deleter(&dummy, [](void*) + auto sWorldSocketMgrHandle = Trinity::make_unique_ptr_with_deleter(&sWorldSocketMgr, [](WorldSocketMgr* mgr) { sWorld->KickAll(); // save and kick all players sWorld->UpdateSessions(1); // real players unload required UpdateSessions call - sWorldSocketMgr.StopNetwork(); + mgr->StopNetwork(); ///- Clean database before leaving ClearOnlineAccounts(); diff --git a/src/server/worldserver/TCSoap/TCSoap.cpp b/src/server/worldserver/TCSoap/TCSoap.cpp index b367f502c90..71b299ca786 100644 --- a/src/server/worldserver/TCSoap/TCSoap.cpp +++ b/src/server/worldserver/TCSoap/TCSoap.cpp @@ -27,7 +27,7 @@ std::thread* CreateSoapThread(const std::string& host, uint16 port) { - auto soap = Trinity::make_unique_ptr_with_deleter<struct soap*>(new struct soap(), [](struct soap* soap) + auto soap = Trinity::make_unique_ptr_with_deleter(new struct soap(), [](struct soap* soap) { soap_destroy(soap); soap_end(soap); |