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) + }() }) }