14 Star 51 Fork 12

Hprose / hprose-go

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
reader_pool.go 1.86 KB
一键复制 编辑 原始数据 按行查看 历史
/**********************************************************\
| |
| hprose |
| |
| Official WebSite: http://www.hprose.com/ |
| http://www.hprose.org/ |
| |
\**********************************************************/
/**********************************************************\
* *
* io/reader_pool.go *
* *
* hprose reader pool for Go. *
* *
* LastModified: Dec 3, 2016 *
* Author: Ma Bingyao <andot@hprose.com> *
* *
\**********************************************************/
package io
import (
"sync"
)
// ReaderPool is a reader pool for hprose client & service
type ReaderPool struct {
sync.Pool
}
// AcquireReader from pool.
func (pool *ReaderPool) AcquireReader(buf []byte, simple bool) (reader *Reader) {
reader = pool.Get().(*Reader)
reader.Init(buf)
reader.Simple = simple
return
}
// ReleaseReader to pool.
func (pool *ReaderPool) ReleaseReader(reader *Reader) {
reader.Init(nil)
reader.Reset()
pool.Put(reader)
}
var defaultReaderPool = &ReaderPool{
Pool: sync.Pool{
New: func() interface{} { return new(Reader) },
},
}
// AcquireReader from pool.
func AcquireReader(buf []byte, simple bool) *Reader {
return defaultReaderPool.AcquireReader(buf, simple)
}
// ReleaseReader to pool.
func ReleaseReader(reader *Reader) {
defaultReaderPool.ReleaseReader(reader)
}
Go
1
https://gitee.com/andot/hprose-go.git
git@gitee.com:andot/hprose-go.git
andot
hprose-go
hprose-go
v2.0.4

搜索帮助