Skip to content

Commit cb5046d

Browse files
committed
Check whether the connection is closed before returning a write IO error
Closes #215
1 parent d34c89a commit cb5046d

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

Diff for: write.go

+9-2
Original file line numberDiff line numberDiff line change
@@ -262,8 +262,15 @@ func (c *Conn) writeFrame(ctx context.Context, fin bool, flate bool, opcode opco
262262

263263
defer func() {
264264
if err != nil {
265-
err = fmt.Errorf("failed to write frame: %w", err)
266-
c.close(err)
265+
select {
266+
case <-c.closed:
267+
err = c.closeErr
268+
case <-ctx.Done():
269+
err = ctx.Err()
270+
default:
271+
err = fmt.Errorf("failed to write frame: %w", err)
272+
c.close(err)
273+
}
267274
}
268275
}()
269276

0 commit comments

Comments
 (0)