diff --git a/webtransportsconnection.go b/webtransportsconnection.go index 5c5b045..602be9b 100644 --- a/webtransportsconnection.go +++ b/webtransportsconnection.go @@ -36,7 +36,7 @@ func (w *webTransportsConnection) Write(p []byte) (n int, err error) { func() {}) if err != nil { err = fmt.Errorf("%T: %w", w, err) - _ = w.stream.Close() + _ = w.closeStream() } return n, err } @@ -53,7 +53,7 @@ func (w *webTransportsConnection) Read(p []byte) (n int, err error) { func() {}) if err != nil { err = fmt.Errorf("%T: %w", w, err) - _ = w.stream.Close() + _ = w.closeStream() } return n, err } @@ -66,3 +66,12 @@ func (w *webTransportsConnection) syncStream() (err error) { } return } + +func (w *webTransportsConnection) closeStream() (err error) { + w.Lock() + defer w.Unlock() + if w.stream == nil { + return nil + } + return w.stream.Close() +}