device: fix data race in peer.timersActive

Found by the race detector and existing tests.

To avoid introducing a lock into this hot path,
calculate and cache whether any peers exist.

Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com>
This commit is contained in:
Josh Bleecher Snyder authored and Jason A. Donenfeld committed 2021-01-07 14:49:44 +01:00
1 parent 70861686d3
commit f7bbdc31a0
3 files changed
+6 -3

No files matched your search

+1
View File
@@ -125,6 +125,7 @@ func (device *Device) NewPeer(pk NoisePublicKey) (*Peer, error) {
// add
device.peers.keyMap[pk] = peer
device.peers.empty.Set(false)
// start peer