pool.go 361 B

123456789101112131415161718192021222324
  1. package myth
  2. import (
  3. "bytes"
  4. "sync"
  5. )
  6. var bufferPool = sync.Pool{
  7. New: func() any {
  8. return new(bytes.Buffer)
  9. },
  10. }
  11. // NewBuffer alloc *bytes.Buffer from pool
  12. func NewBuffer() *bytes.Buffer {
  13. b := bufferPool.Get().(*bytes.Buffer)
  14. b.Reset()
  15. return b
  16. }
  17. // PutBuffer release *bytes.Buffer to pool
  18. func PutBuffer(b *bytes.Buffer) {
  19. bufferPool.Put(b)
  20. }