mirror of
https://github.com/Oxalide/vsphere-influxdb-go.git
synced 2023-10-10 13:36:51 +02:00
27 lines
434 B
Go
27 lines
434 B
Go
|
package tsm1
|
||
|
|
||
|
import "sync"
|
||
|
|
||
|
var bufPool sync.Pool
|
||
|
|
||
|
// getBuf returns a buffer with length size from the buffer pool.
|
||
|
func getBuf(size int) *[]byte {
|
||
|
x := bufPool.Get()
|
||
|
if x == nil {
|
||
|
b := make([]byte, size)
|
||
|
return &b
|
||
|
}
|
||
|
buf := x.(*[]byte)
|
||
|
if cap(*buf) < size {
|
||
|
b := make([]byte, size)
|
||
|
return &b
|
||
|
}
|
||
|
*buf = (*buf)[:size]
|
||
|
return buf
|
||
|
}
|
||
|
|
||
|
// putBuf returns a buffer to the pool.
|
||
|
func putBuf(buf *[]byte) {
|
||
|
bufPool.Put(buf)
|
||
|
}
|