Skip to content

Commit 007dfee

Browse files
committed
ensure waitgroup handling
1 parent 9f50813 commit 007dfee

1 file changed

Lines changed: 3 additions & 2 deletions

File tree

pkg/buffer/pipe.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,10 +75,10 @@ func (br *PipeBuffer) Read(p []byte) (int, error) {
7575
off := br.offR
7676
block := br.block
7777
br.ioWg.Add(1)
78+
defer br.ioWg.Done()
7879
br.rw.Unlock()
7980

8081
n, err := block.ReadAt(p[:min(len(p), canRead)], int64(off))
81-
br.ioWg.Done()
8282

8383
br.rw.Lock()
8484
br.offR += n
@@ -113,10 +113,10 @@ func (br *PipeBuffer) Write(p []byte) (int, error) {
113113
off := br.offW
114114
block := br.block
115115
br.ioWg.Add(1)
116+
defer br.ioWg.Done()
116117
br.rw.Unlock()
117118

118119
n, err := block.WriteAt(p[:min(canWrite, len(p))], int64(off))
119-
br.ioWg.Done()
120120

121121
br.rw.Lock()
122122
br.offW += n
@@ -136,6 +136,7 @@ func (br *PipeBuffer) Write(p []byte) (int, error) {
136136
}
137137

138138
func (br *PipeBuffer) Reset(limit int) error {
139+
br.ioWg.Wait()
139140
br.rw.Lock()
140141
defer br.rw.Unlock()
141142
if br.block == nil {

0 commit comments

Comments
 (0)