FILE / ScuroNeko/mtg

mtglib/internal/relay/pools.go

Исходный файл и его история в репозитории.
FILE f742066c5491a2ca31e7b400fb434ec912be5540
Files
mtg/mtglib/internal/relay/pools.go
T

33 lines
529 B
Go

package relay
import "sync"
type eastWest struct {
east []byte
west []byte
}
var eastWestPool = sync.Pool{
New: func() interface{} {
return &eastWest{}
},
}
func acquireEastWest(bufferSize int) *eastWest {
wanted := eastWestPool.Get().(*eastWest) // nolint: forcetypeassert
if len(wanted.east) != bufferSize {
wanted.east = make([]byte, bufferSize)
}
if len(wanted.west) != bufferSize {
wanted.west = make([]byte, bufferSize)
}
return wanted
}
func releaseEastWest(ew *eastWest) {
eastWestPool.Put(ew)
}