device: get rid of peers.empty boolean in timersActive
There's no way for len(peers)==0 when a current peer has isRunning==false. This requires some struct reshuffling so that the uint64 pointer is aligned. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
This commit is contained in:
@@ -55,9 +55,13 @@ type Device struct {
|
||||
publicKey NoisePublicKey
|
||||
}
|
||||
|
||||
rate struct {
|
||||
underLoadUntil int64
|
||||
limiter ratelimiter.Ratelimiter
|
||||
}
|
||||
|
||||
peers struct {
|
||||
empty AtomicBool // empty reports whether len(keyMap) == 0
|
||||
sync.RWMutex // protects keyMap
|
||||
sync.RWMutex // protects keyMap
|
||||
keyMap map[NoisePublicKey]*Peer
|
||||
}
|
||||
|
||||
@@ -65,11 +69,6 @@ type Device struct {
|
||||
indexTable IndexTable
|
||||
cookieChecker CookieChecker
|
||||
|
||||
rate struct {
|
||||
underLoadUntil int64
|
||||
limiter ratelimiter.Ratelimiter
|
||||
}
|
||||
|
||||
pool struct {
|
||||
messageBuffers *WaitPool
|
||||
inboundElements *WaitPool
|
||||
@@ -135,7 +134,6 @@ func removePeerLocked(device *Device, peer *Peer, key NoisePublicKey) {
|
||||
|
||||
// remove from peer map
|
||||
delete(device.peers.keyMap, key)
|
||||
device.peers.empty.Set(len(device.peers.keyMap) == 0)
|
||||
}
|
||||
|
||||
// changeState attempts to change the device state to match want.
|
||||
|
||||
Reference in New Issue
Block a user