Merge pull request #14268 from unclejack/lower_allocations_execdriver

daemon: lower allocations
Upstream-commit: bb364ff459e8ebcc601a13057a1477336646474b
Component: engine
This commit is contained in:
Alexander Morozov
2015-06-30 12:12:06 -07:00
3 changed files with 13 additions and 3 deletions
+8
View File
@@ -57,6 +57,14 @@ func (bufPool *BufioReaderPool) Put(b *bufio.Reader) {
bufPool.pool.Put(b)
}
// Copy is a convenience wrapper which uses a buffer to avoid allocation in io.Copy
func Copy(dst io.Writer, src io.Reader) (written int64, err error) {
buf := BufioReader32KPool.Get(src)
written, err = io.Copy(dst, buf)
BufioReader32KPool.Put(buf)
return
}
// NewReadCloserWrapper returns a wrapper which puts the bufio.Reader back
// into the pool and closes the reader if it's an io.ReadCloser.
func (bufPool *BufioReaderPool) NewReadCloserWrapper(buf *bufio.Reader, r io.Reader) io.ReadCloser {