diff --git a/receive_stream.go b/receive_stream.go index 9f06f21f..ce00cc46 100644 --- a/receive_stream.go +++ b/receive_stream.go @@ -104,6 +104,7 @@ func (s *receiveStream) readImpl(p []byte) (bool /*stream completed */, int, err } bytesRead := 0 + var deadlineTimer *utils.Timer for bytesRead < len(p) { if s.currentFrame == nil || s.readPosInFrame >= len(s.currentFrame) { s.dequeueNextFrame() @@ -112,7 +113,6 @@ func (s *receiveStream) readImpl(p []byte) (bool /*stream completed */, int, err return false, bytesRead, s.closeForShutdownErr } - var deadlineTimer *utils.Timer for { // Stop waiting on errors if s.closedForShutdown { @@ -132,6 +132,7 @@ func (s *receiveStream) readImpl(p []byte) (bool /*stream completed */, int, err } if deadlineTimer == nil { deadlineTimer = utils.NewTimer() + defer deadlineTimer.Stop() } deadlineTimer.Reset(deadline) } diff --git a/send_stream.go b/send_stream.go index 6c71f0b8..ba6e0a34 100644 --- a/send_stream.go +++ b/send_stream.go @@ -137,6 +137,7 @@ func (s *sendStream) Write(p []byte) (int, error) { } if deadlineTimer == nil { deadlineTimer = utils.NewTimer() + defer deadlineTimer.Stop() } deadlineTimer.Reset(deadline) }