|
@@ -1,73 +0,0 @@
|
|
|
-// +build !go1.3
|
|
|
-
|
|
|
-package pools
|
|
|
-
|
|
|
-import (
|
|
|
- "bufio"
|
|
|
- "io"
|
|
|
-
|
|
|
- "github.com/docker/docker/pkg/ioutils"
|
|
|
-)
|
|
|
-
|
|
|
-var (
|
|
|
- BufioReader32KPool *BufioReaderPool
|
|
|
- BufioWriter32KPool *BufioWriterPool
|
|
|
-)
|
|
|
-
|
|
|
-const buffer32K = 32 * 1024
|
|
|
-
|
|
|
-type BufioReaderPool struct {
|
|
|
- size int
|
|
|
-}
|
|
|
-
|
|
|
-func init() {
|
|
|
- BufioReader32KPool = newBufioReaderPoolWithSize(buffer32K)
|
|
|
- BufioWriter32KPool = newBufioWriterPoolWithSize(buffer32K)
|
|
|
-}
|
|
|
-
|
|
|
-func newBufioReaderPoolWithSize(size int) *BufioReaderPool {
|
|
|
- return &BufioReaderPool{size: size}
|
|
|
-}
|
|
|
-
|
|
|
-func (bufPool *BufioReaderPool) Get(r io.Reader) *bufio.Reader {
|
|
|
- return bufio.NewReaderSize(r, bufPool.size)
|
|
|
-}
|
|
|
-
|
|
|
-func (bufPool *BufioReaderPool) Put(b *bufio.Reader) {
|
|
|
- b.Reset(nil)
|
|
|
-}
|
|
|
-
|
|
|
-func (bufPool *BufioReaderPool) NewReadCloserWrapper(buf *bufio.Reader, r io.Reader) io.ReadCloser {
|
|
|
- return ioutils.NewReadCloserWrapper(r, func() error {
|
|
|
- if readCloser, ok := r.(io.ReadCloser); ok {
|
|
|
- return readCloser.Close()
|
|
|
- }
|
|
|
- return nil
|
|
|
- })
|
|
|
-}
|
|
|
-
|
|
|
-type BufioWriterPool struct {
|
|
|
- size int
|
|
|
-}
|
|
|
-
|
|
|
-func newBufioWriterPoolWithSize(size int) *BufioWriterPool {
|
|
|
- return &BufioWriterPool{size: size}
|
|
|
-}
|
|
|
-
|
|
|
-func (bufPool *BufioWriterPool) Get(w io.Writer) *bufio.Writer {
|
|
|
- return bufio.NewWriterSize(w, bufPool.size)
|
|
|
-}
|
|
|
-
|
|
|
-func (bufPool *BufioWriterPool) Put(b *bufio.Writer) {
|
|
|
- b.Reset(nil)
|
|
|
-}
|
|
|
-
|
|
|
-func (bufPool *BufioWriterPool) NewWriteCloserWrapper(buf *bufio.Writer, w io.Writer) io.WriteCloser {
|
|
|
- return ioutils.NewWriteCloserWrapper(w, func() error {
|
|
|
- buf.Flush()
|
|
|
- if writeCloser, ok := w.(io.WriteCloser); ok {
|
|
|
- return writeCloser.Close()
|
|
|
- }
|
|
|
- return nil
|
|
|
- })
|
|
|
-}
|