gotosocial/vendor/git.iim.gay/grufwub/fastpath/pool.go
kim (grufwub) e43a46e982 add git.iim.gay/grufwub/go-store for storage backend, replacing blob.Storage
Signed-off-by: kim (grufwub) <grufwub@gmail.com>
2021-09-11 20:12:47 +01:00

32 lines
491 B
Go

package fastpath
import "sync"
// 1/8 max unix path length
const defaultBufSize = 512
var (
builderPool sync.Pool
once = sync.Once{}
)
func pool() *sync.Pool {
once.Do(func() {
builderPool = sync.Pool{
New: func() interface{} {
builder := NewBuilder(make([]byte, defaultBufSize))
return &builder
},
}
})
return &builderPool
}
func AcquireBuilder() *Builder {
return pool().Get().(*Builder)
}
func ReleaseBuilder(b *Builder) {
b.Reset()
pool().Put(b)
}