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

Loading…
Cancel
Save