game_sync/gamesrv/slotspkg/internal/module/shell/session.go

30 lines
449 B
Go

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
}