session remove rewrited

This commit is contained in:
Jason
2019-08-07 18:34:56 +08:00
parent 29c866c52f
commit 809ca6bb26

View File

@@ -120,14 +120,17 @@ func (s *simpleSessionStater) GetSession(key interface{}) *stats.Session {
} }
func (s *simpleSessionStater) RemoveSession(key interface{}) { func (s *simpleSessionStater) RemoveSession(key interface{}) {
s.mux.Lock()
defer s.mux.Unlock()
if sess, ok := s.sessions.Load(key); ok { if sess, ok := s.sessions.Load(key); ok {
// move to completed sessions
s.mux.Lock()
s.completedSessions = append(s.completedSessions, *(sess.(*stats.Session))) s.completedSessions = append(s.completedSessions, *(sess.(*stats.Session)))
if len(s.completedSessions) > maxCompletedSessions { if len(s.completedSessions) > maxCompletedSessions {
s.completedSessions = s.completedSessions[1:] s.completedSessions = s.completedSessions[1:]
} }
s.mux.Unlock()
s.sessions.Delete(key)
} else {
log.Warnf("session key [%v] not found", key)
} }
s.sessions.Delete(key)
} }