package shell import ( "mongo.games.com/game/gamesrv/base" "sync" ) func Session(s *base.SlotsSession, key string, category string) *Shell { var m *sync.Map v := s.Value(key) if v == nil { m = &sync.Map{} s.Set(key, m) } else { m = v.(*sync.Map) } var shell *Shell v, ok := m.Load(key) if !ok { shell = NewShell(category) m.Store(key, shell) } else { shell = v.(*Shell) shell.UpdateCategory(category) } return shell }