From: Matt Joiner Date: Wed, 18 Aug 2021 04:48:25 +0000 (+1000) Subject: Fix race in assigning keep alive timer X-Git-Tag: v1.30.3~10 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=588a7b6149497dc27c1e3cf91350fd558706b55d;p=btrtrc.git Fix race in assigning keep alive timer --- diff --git a/peer-conn-msg-writer.go b/peer-conn-msg-writer.go index 293c8388..16892546 100644 --- a/peer-conn-msg-writer.go +++ b/peer-conn-msg-writer.go @@ -63,6 +63,8 @@ func (cn *peerConnMsgWriter) run(keepAliveTimeout time.Duration) { lastWrite time.Time = time.Now() keepAliveTimer *time.Timer ) + cn.mu.Lock() + defer cn.mu.Unlock() keepAliveTimer = time.AfterFunc(keepAliveTimeout, func() { cn.mu.Lock() defer cn.mu.Unlock() @@ -71,8 +73,6 @@ func (cn *peerConnMsgWriter) run(keepAliveTimeout time.Duration) { } keepAliveTimer.Reset(keepAliveTimeout) }) - cn.mu.Lock() - defer cn.mu.Unlock() defer keepAliveTimer.Stop() frontBuf := new(bytes.Buffer) for {