From 3c0d29ed41ec4fc05069704897cd9a9c2ab59e62 Mon Sep 17 00:00:00 2001 From: wish Date: Thu, 27 Feb 2025 20:06:05 +1100 Subject: [PATCH] fix invalidateSessions --- server/channelserver/sys_channel_server.go | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/server/channelserver/sys_channel_server.go b/server/channelserver/sys_channel_server.go index 6b6404f52..32ec832c8 100644 --- a/server/channelserver/sys_channel_server.go +++ b/server/channelserver/sys_channel_server.go @@ -280,13 +280,18 @@ func (s *Server) manageSessions() { } func (s *Server) invalidateSessions() { - for _, session := range s.sessions { - if time.Now().Add(-30 * time.Second).After(session.lastPacket) { - s.logger.Info("Session timeout", zap.String("Name", session.Name)) - logoutPlayer(session) + for { + if s.isShuttingDown { + break } + for _, sess := range s.sessions { + if time.Now().Sub(sess.lastPacket) > time.Second*time.Duration(30) { + s.logger.Info("session timeout", zap.String("Name", sess.Name)) + logoutPlayer(sess) + } + } + time.Sleep(time.Second * 10) } - time.Sleep(30 * time.Second) } // BroadcastMHF queues a MHFPacket to be sent to all sessions.