mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2026-09-22 10:05:09 +00:00
@@ -476,9 +476,6 @@ struct System::Impl {
|
||||
room_member->SendGameInfo(game_info);
|
||||
}
|
||||
|
||||
// Reset all glue registrations
|
||||
arp_manager->ResetAll();
|
||||
|
||||
LOG_DEBUG(Core, "Shutdown OK");
|
||||
}
|
||||
|
||||
|
||||
@@ -98,8 +98,10 @@ ServerManager::~ServerManager() {
|
||||
// Signal stop.
|
||||
m_stop_source.request_stop();
|
||||
m_wakeup_event->Signal(m_system.Kernel());
|
||||
if (m_deferral_event) m_deferral_event->Signal(m_system.Kernel()); //for sm: and ports
|
||||
|
||||
// Wait for processing to stop.
|
||||
|
||||
// Wait for processing to stop. Schedule
|
||||
m_stopped.Wait();
|
||||
m_threads.clear();
|
||||
|
||||
@@ -258,6 +260,7 @@ void ServerManager::NotifyShutdown() {
|
||||
m_stop_source.request_stop();
|
||||
// Wake them up regardless
|
||||
m_wakeup_event->Signal(m_system.Kernel());
|
||||
if (m_deferral_event) m_deferral_event->Signal(m_system.Kernel()); //for sm: and ports
|
||||
}
|
||||
|
||||
Result ServerManager::LoopProcess() {
|
||||
|
||||
@@ -305,16 +305,14 @@ SM::SM(ServiceManager& service_manager_, Core::System& system_)
|
||||
SM::~SM() = default;
|
||||
|
||||
void LoopProcess(Core::System& system) {
|
||||
auto& service_manager = system.ServiceManager();
|
||||
auto server_manager = std::make_unique<ServerManager>(system);
|
||||
|
||||
Kernel::KEvent* deferral_event{};
|
||||
server_manager->ManageDeferral(&deferral_event);
|
||||
service_manager.SetDeferralEvent(deferral_event);
|
||||
|
||||
system.ServiceManager().SetDeferralEvent(deferral_event);
|
||||
auto sm_service = std::make_shared<SM>(system.ServiceManager(), system);
|
||||
server_manager->ManageNamedPort("sm:", [sm_service] { return sm_service; });
|
||||
|
||||
server_manager->ManageNamedPort("sm:", [sm_service] {
|
||||
return sm_service;
|
||||
});
|
||||
ServerManager::RunServer(std::move(server_manager));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user