Like Prometheus, but for logs.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
loki/pkg/dataobj/internal/encoding/pools.go

34 lines
517 B

package encoding
import (
"bufio"
"bytes"
"io"
"sync"
"github.com/gogo/protobuf/proto"
)
var bytesBufferPool = sync.Pool{
New: func() any {
return new(bytes.Buffer)
},
}
var protoBufferPool = sync.Pool{
New: func() any {
return new(proto.Buffer)
},
}
var bufioPool = sync.Pool{
New: func() any {
return bufio.NewReader(nil)
},
}
func getBufioReader(r io.Reader) (rd *bufio.Reader, release func()) {
br := bufioPool.Get().(*bufio.Reader)
br.Reset(r)
return br, func() { bufioPool.Put(br) }
}