From ea8fbb5927d462099103f42a124aeb9922bf3d0f Mon Sep 17 00:00:00 2001 From: Josh Bleecher Snyder Date: Mon, 14 Dec 2020 15:30:10 -0800 Subject: [PATCH] device: use defer to simplify peer.NewTimer This also makes the lifetime of modifyingLock more prominent. Signed-off-by: Josh Bleecher Snyder --- device/timers.go | 3 +-- 1 file changed, 1 insertion(+), 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