]> git.ipfire.org Git - thirdparty/wireguard-go.git/commitdiff
device: use defer to simplify peer.NewTimer
authorJosh Bleecher Snyder <josh@tailscale.com>
Mon, 14 Dec 2020 23:30:10 +0000 (15:30 -0800)
committerJason A. Donenfeld <Jason@zx2c4.com>
Tue, 15 Dec 2020 17:08:24 +0000 (18:08 +0100)
This also makes the lifetime of modifyingLock more prominent.

Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com>
device/timers.go

index 0232eefc63119f2e240cfea79979e3354020ca63..48cef94b2269932f7b7b6487b2ec494da8674992 100644 (file)
@@ -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