From c4371379c9ebbdb71bb77ece281942b7cbe254a7 Mon Sep 17 00:00:00 2001 From: vyzo Date: Thu, 23 May 2019 00:21:12 +0300 Subject: [PATCH] fix SetDeadline error conditions --- stream.go | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/stream.go b/stream.go index f8cc27e..d19ee8e 100644 --- a/stream.go +++ b/stream.go @@ -251,12 +251,18 @@ func (s *Stream) SetDeadline(t time.Time) error { s.clLock.Lock() defer s.clLock.Unlock() - if s.closedRemote || s.isClosed() { + if s.closedRemote && s.isClosed() { return errStreamClosed } - s.rDeadline.set(t) - s.wDeadline.set(t) + if !s.closedRemote { + s.rDeadline.set(t) + } + + if !s.isClosed() { + s.wDeadline.set(t) + } + return nil }