Skip to content

Instantly share code, notes, and snippets.

@simcap
Created June 6, 2016 10:46
Show Gist options
  • Save simcap/6fe510d8490b7ea4217343bd1b526e3b to your computer and use it in GitHub Desktop.
Save simcap/6fe510d8490b7ea4217343bd1b526e3b to your computer and use it in GitHub Desktop.
Prez - Collectors Pool
// ...
bodyBuf := getBuf()
_, err := bodyBuf.ReadFrom(body)
if err != nil {
putBuf(bodyBuf)
jsonError(w, http.StatusInternalServerError, "problem reading request body")
return
}
// ...
var bufPool = sync.Pool{New: func() interface{} { return new(bytes.Buffer) }}
func getBuf() *bytes.Buffer {
if bb, ok := bufPool.Get().(*bytes.Buffer); ok {
return bb
}
return new(bytes.Buffer)
}
func putBuf(b *bytes.Buffer) {
b.Reset()
bufPool.Put(b)
}
// ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment