perf: reduce timer in write_control

Signed-off-by: rfyiamcool <rfyiamcool@163.com>
This commit is contained in:
rfyiamcool 2023-12-08 17:24:58 +08:00 committed by Alex Vulaj
parent cf50a3efbb
commit d15aba1e61
1 changed files with 9 additions and 4 deletions

View File

@ -454,6 +454,9 @@ func (c *Conn) WriteControl(messageType int, data []byte, deadline time.Time) er
} }
} }
select {
case <-c.mu:
default:
timer := time.NewTimer(d) timer := time.NewTimer(d)
select { select {
case <-c.mu: case <-c.mu:
@ -461,6 +464,8 @@ func (c *Conn) WriteControl(messageType int, data []byte, deadline time.Time) er
case <-timer.C: case <-timer.C:
return errWriteTimeout return errWriteTimeout
} }
}
defer func() { c.mu <- struct{}{} }() defer func() { c.mu <- struct{}{} }()
c.writeErrMu.Lock() c.writeErrMu.Lock()