mirror of
https://github.com/ScuroNeko/mtg.git
synced 2026-08-31 23:14:02 +03:00
FILE / ScuroNeko/mtg
mtglib/internal/relay/pools.go
Исходный файл и его история в репозитории.
33 lines
529 B
Go
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)
|
|
}
|