Browse Source

destroy timer immedietely after use

pull/1524/head^2
Darien Raymond 6 years ago
parent
commit
c81531fc77
No known key found for this signature in database
GPG Key ID: 7251FFA14BB18169
  1. 6
      transport/pipe/impl.go

6
transport/pipe/impl.go

@ -82,7 +82,9 @@ func (p *pipe) ReadMultiBuffer() (buf.MultiBuffer, error) {
} }
func (p *pipe) ReadMultiBufferTimeout(d time.Duration) (buf.MultiBuffer, error) { func (p *pipe) ReadMultiBufferTimeout(d time.Duration) (buf.MultiBuffer, error) {
timer := time.After(d) timer := time.NewTimer(d)
defer timer.Stop()
for { for {
data, err := p.readMultiBufferInternal() data, err := p.readMultiBufferInternal()
if data != nil || err != nil { if data != nil || err != nil {
@ -93,7 +95,7 @@ func (p *pipe) ReadMultiBufferTimeout(d time.Duration) (buf.MultiBuffer, error)
select { select {
case <-p.readSignal.Wait(): case <-p.readSignal.Wait():
case <-p.done.Wait(): case <-p.done.Wait():
case <-timer: case <-timer.C:
return nil, buf.ErrReadTimeout return nil, buf.ErrReadTimeout
} }
} }

Loading…
Cancel
Save