Revert "ipn/ipnlocal: remove locks around sync.Cond.Broadcast call"

Reason for revert: Causes ipnlocal tests to deadlock intermittently.

This reverts commit 1b15349e011a14a54e1a0b0f613df47bb2898d6f.

Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com>
This commit is contained in:
Josh Bleecher Snyder 2021-09-16 12:56:43 -07:00 committed by Josh Bleecher Snyder
parent a05086ef86
commit b7ede14396

View File

@ -601,12 +601,18 @@ func (b *LocalBackend) findExitNodeIDLocked(nm *netmap.NetworkMap) (prefsChanged
func (b *LocalBackend) setWgengineStatus(s *wgengine.Status, err error) {
if err != nil {
b.logf("wgengine status error: %v", err)
b.statusLock.Lock()
b.statusChanged.Broadcast()
b.statusLock.Unlock()
return
}
if s == nil {
b.logf("[unexpected] non-error wgengine update with status=nil: %v", s)
b.statusLock.Lock()
b.statusChanged.Broadcast()
b.statusLock.Unlock()
return
}
@ -626,7 +632,11 @@ func (b *LocalBackend) setWgengineStatus(s *wgengine.Status, err error) {
}
b.stateMachine()
}
b.statusLock.Lock()
b.statusChanged.Broadcast()
b.statusLock.Unlock()
b.send(ipn.Notify{Engine: &es})
}