package log | |
import ( | |
"bytes" | |
"sync" | |
) | |
type BufferPool struct { | |
sync.Pool | |
} | |
func NewBufferPool() *BufferPool { | |
return &BufferPool{ | |
Pool: sync.Pool{New: func() interface{} { | |
b := bytes.NewBuffer(make([]byte, 128)) | |
b.Reset() | |
return b | |
}}, | |
} | |
} | |
func (bp *BufferPool) Get() *bytes.Buffer { | |
return bp.Pool.Get().(*bytes.Buffer) | |
} | |
func (bp *BufferPool) Put(b *bytes.Buffer) { | |
b.Reset() | |
bp.Pool.Put(b) | |
} |