This commit is contained in:
aozhiwei 2024-06-01 17:45:01 +08:00
parent 72abfd9f94
commit 3e424d81aa

View File

@ -249,5 +249,17 @@ void GGListener::RemoveSocketDisconnectHandler(std::weak_ptr<SocketDisconnectHan
void GGListener::OnClientDisconnect(int socket_handle)
{
auto itr = disconnect_listener_hash_.find(socket_handle);
if (itr != disconnect_listener_hash_.end()) {
std::vector<std::weak_ptr<SocketDisconnectHandler>> del_handlers;
SocketDisconnectHandler *handle = nullptr, *tmp = nullptr;
list_for_each_entry_safe(handle, tmp, &itr->second, entry) {
del_handlers.push_back(handle->holder);
handle->cb(a8::Args({itr->first}));
}
for (auto handler : del_handlers) {
RemoveSocketDisconnectHandler(handler);
}
}
PlayerMgr::Instance()->OnClientDisconnect(socket_handle);
}