gateway_rpc/servlet/session.go
crusader 8fb9ee1301 ing
2018-04-26 17:00:32 +09:00

37 lines
585 B
Go

package servlet
import (
"sync"
"git.loafle.net/commons/server-go"
)
type Session struct {
TargetID string
ServletCtx server.ServletCtx
}
var sessionPool sync.Pool
func RetainSession(targetID string, servletCtx server.ServletCtx) *Session {
v := sessionPool.Get()
var _session *Session
if v == nil {
_session = &Session{}
} else {
_session = v.(*Session)
}
_session.TargetID = targetID
_session.ServletCtx = servletCtx
return _session
}
func ReleaseSession(_session *Session) {
_session.TargetID = ""
_session.ServletCtx = nil
sessionPool.Put(_session)
}