From 588a7b6149497dc27c1e3cf91350fd558706b55d Mon Sep 17 00:00:00 2001 From: Matt Joiner Date: Wed, 18 Aug 2021 14:48:25 +1000 Subject: [PATCH] Fix race in assigning keep alive timer --- peer-conn-msg-writer.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 { -- 2.48.1