当前仓库属于暂停状态,部分功能使用受限,详情请查阅 仓库状态说明
55 Star 269 Fork 100

fagongzi/gateway
暂停

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
pool.go 1.29 KB
一键复制 编辑 原始数据 按行查看 历史
张旭 提交于 2018-04-28 16:36 . fix: pool bug
package proxy
import (
"sync"
"github.com/fagongzi/goetty"
)
var (
renderPool sync.Pool
contextPool sync.Pool
dispathNodePool sync.Pool
multiContextPool sync.Pool
bytesPool = goetty.NewSyncPool(2, 1024*1024*5, 2)
emptyRender = render{}
emptyContext = proxyContext{}
emptyDispathNode = dispathNode{}
)
func acquireMultiContext() *multiContext {
v := multiContextPool.Get()
if v == nil {
return &multiContext{}
}
return v.(*multiContext)
}
func releaseMultiContext(value *multiContext) {
if value != nil {
value.reset()
multiContextPool.Put(value)
}
}
func acquireDispathNode() *dispathNode {
v := dispathNodePool.Get()
if v == nil {
return &dispathNode{}
}
return v.(*dispathNode)
}
func releaseDispathNode(value *dispathNode) {
if value != nil {
value.reset()
dispathNodePool.Put(value)
}
}
func acquireContext() *proxyContext {
v := contextPool.Get()
if v == nil {
return &proxyContext{}
}
return v.(*proxyContext)
}
func releaseContext(value *proxyContext) {
if value != nil {
value.reset()
contextPool.Put(value)
}
}
func acquireRender() *render {
v := renderPool.Get()
if v == nil {
return &render{}
}
return v.(*render)
}
func releaseRender(value *render) {
if value != nil {
value.reset()
renderPool.Put(value)
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/fagongzi/gateway.git
git@gitee.com:fagongzi/gateway.git
fagongzi
gateway
gateway
v2.1.1

搜索帮助