pool.go 398 B

123456789101112131415161718
  1. package sdk
  2. import (
  3. "io"
  4. "sync"
  5. )
  6. const buffer32K = 32 * 1024
  7. var buffer32KPool = &sync.Pool{New: func() interface{} { return make([]byte, buffer32K) }}
  8. // copyBuf uses a shared buffer pool with io.CopyBuffer
  9. func copyBuf(w io.Writer, r io.Reader) (int64, error) {
  10. buf := buffer32KPool.Get().([]byte)
  11. written, err := io.CopyBuffer(w, r, buf)
  12. buffer32KPool.Put(buf)
  13. return written, err
  14. }