From ea33b7691b9ab296d63a669d9d735054e31f8e12 Mon Sep 17 00:00:00 2001 From: Darien Raymond Date: Tue, 27 Dec 2016 20:53:29 +0100 Subject: [PATCH] remove lock on bytes reader and writer --- common/buf/reader.go | 12 +----------- common/buf/writer.go | 15 +-------------- 2 files changed, 2 insertions(+), 25 deletions(-) diff --git a/common/buf/reader.go b/common/buf/reader.go index c528013f..15805339 100644 --- a/common/buf/reader.go +++ b/common/buf/reader.go @@ -1,9 +1,6 @@ package buf -import ( - "io" - "sync" -) +import "io" // BytesToBufferReader is a Reader that adjusts its reading speed automatically. type BytesToBufferReader struct { @@ -52,7 +49,6 @@ func (v *BytesToBufferReader) Release() { } type BufferToBytesReader struct { - sync.Mutex stream Reader current *Buffer eof bool @@ -74,8 +70,6 @@ func (v *BufferToBytesReader) Read(b []byte) (int, error) { return 0, io.EOF } - v.Lock() - defer v.Unlock() if v.current == nil { v.Fill() if v.eof { @@ -92,11 +86,7 @@ func (v *BufferToBytesReader) Read(b []byte) (int, error) { // Release implements Releasable.Release(). func (v *BufferToBytesReader) Release() { - v.Lock() - defer v.Unlock() - v.eof = true v.current.Release() v.current = nil - v.stream = nil } diff --git a/common/buf/writer.go b/common/buf/writer.go index e4828880..b762a7e6 100644 --- a/common/buf/writer.go +++ b/common/buf/writer.go @@ -1,9 +1,6 @@ package buf -import ( - "io" - "sync" -) +import "io" // BufferToBytesWriter is a Writer that writes alloc.Buffer into underlying writer. type BufferToBytesWriter struct { @@ -32,17 +29,10 @@ func (v *BufferToBytesWriter) Release() { } type BytesToBufferWriter struct { - sync.Mutex writer Writer } func (v *BytesToBufferWriter) Write(payload []byte) (int, error) { - v.Lock() - defer v.Unlock() - if v.writer == nil { - return 0, io.ErrClosedPipe - } - bytesWritten := 0 size := len(payload) for size > 0 { @@ -62,8 +52,5 @@ func (v *BytesToBufferWriter) Write(payload []byte) (int, error) { // Release implements Releasable.Release() func (v *BytesToBufferWriter) Release() { - v.Lock() v.writer.Release() - v.writer = nil - v.Unlock() }