aboutsummaryrefslogtreecommitdiffstats
path: root/device/peer.go
diff options
context:
space:
mode:
authorJosh Bleecher Snyder <josh@tailscale.com>2020-12-15 17:44:21 -0800
committerJason A. Donenfeld <Jason@zx2c4.com>2021-01-07 14:49:44 +0100
commitf7bbdc31a0065e3d5a68a3e6c7a7449954fdd339 (patch)
treeb2605ff0dd0a12be4055d8b936abdb666a88ae9a /device/peer.go
parentdevice: fix races from changing private_key (diff)
downloadwireguard-go-f7bbdc31a0065e3d5a68a3e6c7a7449954fdd339.tar.xz
wireguard-go-f7bbdc31a0065e3d5a68a3e6c7a7449954fdd339.zip
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>
Diffstat (limited to 'device/peer.go')
-rw-r--r--device/peer.go1
1 files changed, 1 insertions, 0 deletions
diff --git a/device/peer.go b/device/peer.go
index fe6de33..73e6083 100644
--- a/device/peer.go
+++ b/device/peer.go
@@ -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