This commit is contained in:
geek 2018-04-13 17:28:53 +09:00
parent fac4e46be6
commit a8aadd10dd

35
servlet/session.go Normal file
View File

@ -0,0 +1,35 @@
package servlet
import (
"git.loafle.net/commons/server-go"
"sync"
)
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)
}