From 53f8adb704563683ea40412adb70cd38d899df75 Mon Sep 17 00:00:00 2001 From: Kyle Carberry Date: Mon, 5 Sep 2022 14:50:47 +0000 Subject: [PATCH] fix: Run status callbacks async to solve tailnet race --- tailnet/conn.go | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/tailnet/conn.go b/tailnet/conn.go index 12ab2ad593a86..7f99ddbcaaf43 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) + }() }) }