diff options
| author | Brad Fitzpatrick <bradfitz@tailscale.com> | 2025-12-02 12:50:33 -0800 |
|---|---|---|
| committer | Brad Fitzpatrick <bradfitz@tailscale.com> | 2025-12-02 15:12:13 -0800 |
| commit | 381de776c4878dd9af76b126cfa37bc80cad363f (patch) | |
| tree | c3ddcbf9613db3074c9c6882bb757357cf5bdd0a /util/syspolicy/rsop | |
| parent | b8c58ca7c1a49fb772d095c65693cdab06488047 (diff) | |
| download | tailscale-bradfitz/mutex_debug.tar.xz tailscale-bradfitz/mutex_debug.zip | |
syncs: start working on mutex debugging, registrationbradfitz/mutex_debug
Updates #17852
Change-Id: Ib1b634eedd30cc4006bc1b39aa8d479d37c5f1f2
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
Diffstat (limited to 'util/syspolicy/rsop')
| -rw-r--r-- | util/syspolicy/rsop/change_callbacks.go | 3 | ||||
| -rw-r--r-- | util/syspolicy/rsop/resultant_policy.go | 2 | ||||
| -rw-r--r-- | util/syspolicy/rsop/rsop.go | 5 |
3 files changed, 8 insertions, 2 deletions
diff --git a/util/syspolicy/rsop/change_callbacks.go b/util/syspolicy/rsop/change_callbacks.go index 71135bb2a..fdf51c253 100644 --- a/util/syspolicy/rsop/change_callbacks.go +++ b/util/syspolicy/rsop/change_callbacks.go @@ -9,7 +9,6 @@ import ( "sync" "time" - "tailscale.com/syncs" "tailscale.com/util/set" "tailscale.com/util/syspolicy/internal/loggerx" "tailscale.com/util/syspolicy/pkey" @@ -71,7 +70,7 @@ func (c PolicyChange) HasChangedAnyOf(keys ...pkey.Key) bool { // policyChangeCallbacks are the callbacks to invoke when the effective policy changes. // It is safe for concurrent use. type policyChangeCallbacks struct { - mu syncs.Mutex + mu sync.Mutex cbs set.HandleSet[PolicyChangeCallback] } diff --git a/util/syspolicy/rsop/resultant_policy.go b/util/syspolicy/rsop/resultant_policy.go index bdda90976..67e13ab56 100644 --- a/util/syspolicy/rsop/resultant_policy.go +++ b/util/syspolicy/rsop/resultant_policy.go @@ -96,6 +96,8 @@ func newPolicy(scope setting.PolicyScope, sources ...*source.Source) (_ *Policy, closeCh: make(chan struct{}), doneCh: make(chan struct{}), } + syncs.RegisterMutex(&p.mu, "syspolicy/rsop.Policy.mu") + if _, err := p.reloadNow(false); err != nil { p.Close() return nil, err diff --git a/util/syspolicy/rsop/rsop.go b/util/syspolicy/rsop/rsop.go index 333dca643..d7e50a004 100644 --- a/util/syspolicy/rsop/rsop.go +++ b/util/syspolicy/rsop/rsop.go @@ -32,6 +32,11 @@ var ( effectivePolicyLRU [setting.NumScopes]syncs.AtomicValue[*Policy] ) +var _ = func() bool { + syncs.RegisterMutex(&policyMu, "syspolicy/rsop.policyMu") + return true +}() + // PolicyFor returns the [Policy] for the specified scope, // creating it from the registered [source.Store]s if it doesn't already exist. func PolicyFor(scope setting.PolicyScope) (*Policy, error) { |
