mirror of
https://git.eden-emu.dev/eden-emu/eden
synced 2026-11-10 04:01:05 +01:00
2026-09-22 04:33:30
Signed-off-by: lizzie <lizzie@eden-emu.dev>
This commit is contained in:
parent
e18e8b5995
commit
b5b59f2659
3 changed files with 8 additions and 10 deletions
|
|
@ -476,9 +476,6 @@ struct System::Impl {
|
||||||
room_member->SendGameInfo(game_info);
|
room_member->SendGameInfo(game_info);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Reset all glue registrations
|
|
||||||
arp_manager->ResetAll();
|
|
||||||
|
|
||||||
LOG_DEBUG(Core, "Shutdown OK");
|
LOG_DEBUG(Core, "Shutdown OK");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -98,8 +98,10 @@ ServerManager::~ServerManager() {
|
||||||
// Signal stop.
|
// Signal stop.
|
||||||
m_stop_source.request_stop();
|
m_stop_source.request_stop();
|
||||||
m_wakeup_event->Signal(m_system.Kernel());
|
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_stopped.Wait();
|
||||||
m_threads.clear();
|
m_threads.clear();
|
||||||
|
|
||||||
|
|
@ -258,6 +260,7 @@ void ServerManager::NotifyShutdown() {
|
||||||
m_stop_source.request_stop();
|
m_stop_source.request_stop();
|
||||||
// Wake them up regardless
|
// Wake them up regardless
|
||||||
m_wakeup_event->Signal(m_system.Kernel());
|
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() {
|
Result ServerManager::LoopProcess() {
|
||||||
|
|
|
||||||
|
|
@ -305,16 +305,14 @@ SM::SM(ServiceManager& service_manager_, Core::System& system_)
|
||||||
SM::~SM() = default;
|
SM::~SM() = default;
|
||||||
|
|
||||||
void LoopProcess(Core::System& system) {
|
void LoopProcess(Core::System& system) {
|
||||||
auto& service_manager = system.ServiceManager();
|
|
||||||
auto server_manager = std::make_unique<ServerManager>(system);
|
auto server_manager = std::make_unique<ServerManager>(system);
|
||||||
|
|
||||||
Kernel::KEvent* deferral_event{};
|
Kernel::KEvent* deferral_event{};
|
||||||
server_manager->ManageDeferral(&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);
|
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));
|
ServerManager::RunServer(std::move(server_manager));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue