From 2fa77a9bbd127297333f487fea1dfca00129ef04 Mon Sep 17 00:00:00 2001 From: Kyle Carberry Date: Mon, 5 Sep 2022 10:43:24 -0500 Subject: [PATCH] fix: Run status callbacks async to solve tailnet race (#3866) --- tailnet/conn.go | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/tailnet/conn.go b/tailnet/conn.go index 12ab2ad593..7f99ddbcaa 100644 --- a/tailnet/conn.go +++ b/tailnet/conn.go @@ -276,11 +276,13 @@ func (c *Conn) SetNodeCallback(callback func(node *Node)) { for _, addr := range s.LocalAddrs { endpoints = append(endpoints, addr.Addr.String()) } - c.lastMutex.Lock() - c.lastEndpoints = endpoints - node := makeNode() - c.lastMutex.Unlock() - callback(node) + go func() { + c.lastMutex.Lock() + c.lastEndpoints = endpoints + node := makeNode() + c.lastMutex.Unlock() + callback(node) + }() }) }