Skip to content

Commit a773ffa

Browse files
committed
check deadline before sendMsg, because select is randomly, sometimes it will write successfully after deadline
Signed-off-by: Asutorufa <[email protected]>
1 parent 828214b commit a773ffa

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

session.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -490,6 +490,12 @@ func (s *Session) sendMsg(hdr header, body []byte, deadline <-chan struct{}) err
490490
default:
491491
}
492492

493+
select {
494+
case <-deadline:
495+
return ErrTimeout
496+
default:
497+
}
498+
493499
// duplicate as we're sending this async.
494500
buf := pool.Get(headerSize + len(body))
495501
copy(buf[:headerSize], hdr[:])

0 commit comments

Comments
 (0)