frostfs-node/pkg/services/object/common/target/pool.go

31 lines
447 B
Go
Raw Normal View History

package target
import (
"sync"
)
const (
defaultAllocSize = 1024
poolSliceMaxSize = 128 * 1024
)
type payload struct {
Data []byte
}
var putBytesPool = &sync.Pool{
New: func() any { return &payload{Data: make([]byte, 0, defaultAllocSize)} },
}
func getPayload() *payload {
return putBytesPool.Get().(*payload)
}
func putPayload(p *payload) {
if cap(p.Data) > poolSliceMaxSize {
return
}
p.Data = p.Data[:0]
putBytesPool.Put(p)
}