Skip to content

Commit 691ec98

Browse files
committed
Rework write deadline logic
1 parent 2abb4ae commit 691ec98

File tree

1 file changed

+6
-8
lines changed

1 file changed

+6
-8
lines changed

packets.go

+6-8
Original file line numberDiff line numberDiff line change
@@ -116,15 +116,13 @@ func (mc *mysqlConn) writePacket(ctx mysqlContext, data []byte) error {
116116
data[3] = mc.sequence
117117

118118
// Write packet
119-
var timeNow = time.Now()
120-
var deadline = timeNow
121-
if mc.writeTimeout > 0 {
122-
deadline = timeNow.Add(mc.writeTimeout)
123-
if isCtxDeadlineSet && deadline.After(ctxDeadline) {
124-
deadline = ctxDeadline
125-
}
119+
var deadline time.Time
120+
if ctxDeadline, ok := ctx.Deadline(); ok {
121+
deadline = ctxDeadline
122+
} else if mc.writeTimeout > 0 {
123+
deadline = time.Now().Add(mc.writeTimeout)
126124
}
127-
if deadline.After(timeNow) {
125+
if !deadline.IsZero() {
128126
if err := mc.netConn.SetWriteDeadline(deadline); err != nil {
129127
return err
130128
}

0 commit comments

Comments
 (0)