diff options
author | Josh Bleecher Snyder <josh@tailscale.com> | 2020-12-14 15:30:10 -0800 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2021-01-07 14:49:44 +0100 |
commit | ea8fbb5927d462099103f42a124aeb9922bf3d0f (patch) | |
tree | 1d831f9e8e6262a839533bba032787632c809c84 /device/timers.go | |
parent | 93a4313c3a809afe67f1dc430f544282af2b388c (diff) |
device: use defer to simplify peer.NewTimer
This also makes the lifetime of modifyingLock more prominent.
Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com>
Diffstat (limited to 'device/timers.go')
-rw-r--r-- | device/timers.go | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/device/timers.go b/device/timers.go index 0232eef..48cef94 100644 --- a/device/timers.go +++ b/device/timers.go @@ -29,18 +29,17 @@ func (peer *Peer) NewTimer(expirationFunction func(*Peer)) *Timer { timer := &Timer{} timer.Timer = time.AfterFunc(time.Hour, func() { timer.runningLock.Lock() + defer timer.runningLock.Unlock() timer.modifyingLock.Lock() if !timer.isPending { timer.modifyingLock.Unlock() - timer.runningLock.Unlock() return } timer.isPending = false timer.modifyingLock.Unlock() expirationFunction(peer) - timer.runningLock.Unlock() }) timer.Stop() return timer |