diff options
author | rainrambler <wanganyu@outlook.com> | 2021-06-20 22:11:38 +0800 |
---|---|---|
committer | Sebastiaan van Stijn <github@gone.nl> | 2021-08-27 14:39:46 +0200 |
commit | 7ce810c7717ec171892370c13bd3da6290cb8940 (patch) | |
tree | 8a31eb5e5d193f8becd85601e116575f1f5a7529 /pkg/ioutils | |
parent | 2b70006e3bfa492b8641ff443493983d832955f4 (diff) | |
download | docker-7ce810c7717ec171892370c13bd3da6290cb8940.tar.gz |
use defer to unlock mutex
use defer to unlock mutex (clean up)
Signed-off-by: Anyu Wang <wanganyu@outlook.com>
Signed-off-by: rainrambler <wanganyu@outlook.com>
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Diffstat (limited to 'pkg/ioutils')
-rw-r--r-- | pkg/ioutils/bytespipe.go | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/pkg/ioutils/bytespipe.go b/pkg/ioutils/bytespipe.go index 87514b643d..d1dfdae0cc 100644 --- a/pkg/ioutils/bytespipe.go +++ b/pkg/ioutils/bytespipe.go @@ -50,12 +50,12 @@ func NewBytesPipe() *BytesPipe { // It can allocate new []byte slices in a process of writing. func (bp *BytesPipe) Write(p []byte) (int, error) { bp.mu.Lock() + defer bp.mu.Unlock() written := 0 loop0: for { if bp.closeErr != nil { - bp.mu.Unlock() return written, ErrClosed } @@ -72,7 +72,6 @@ loop0: // errBufferFull is an error we expect to get if the buffer is full if err != nil && err != errBufferFull { bp.wait.Broadcast() - bp.mu.Unlock() return written, err } @@ -100,7 +99,6 @@ loop0: bp.buf = append(bp.buf, getBuffer(nextCap)) } bp.wait.Broadcast() - bp.mu.Unlock() return written, nil } @@ -126,17 +124,14 @@ func (bp *BytesPipe) Close() error { // Data could be read only once. func (bp *BytesPipe) Read(p []byte) (n int, err error) { bp.mu.Lock() + defer bp.mu.Unlock() if bp.bufLen == 0 { if bp.closeErr != nil { - err := bp.closeErr - bp.mu.Unlock() - return 0, err + return 0, bp.closeErr } bp.wait.Wait() if bp.bufLen == 0 && bp.closeErr != nil { - err := bp.closeErr - bp.mu.Unlock() - return 0, err + return 0, bp.closeErr } } @@ -161,7 +156,6 @@ func (bp *BytesPipe) Read(p []byte) (n int, err error) { } bp.wait.Broadcast() - bp.mu.Unlock() return } |