// From https://github.com/goburrow/netforward package netforward import "sync" const ( bufferSize = 32 * 1024 ) var ( bufferPool = sync.Pool{ New: func() interface{} { return make([]byte, bufferSize) }, } ) func getBuffer() []byte { return bufferPool.Get().([]byte) } func releaseBuffer(b []byte) { if len(b) != bufferSize { panic("attempted to release buffer with invalid length") } bufferPool.Put(b) }