Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

remoteconfig: remove mutex underscore prefixes #2497

Merged
merged 2 commits into from
Jan 10, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 36 additions & 36 deletions internal/remoteconfig/remoteconfig.go
Original file line number Diff line number Diff line change
Expand Up @@ -91,14 +91,14 @@ type Client struct {
stop chan struct{}

// When acquiring several locks and using defer to release them, make sure to acquire the locks in the following order:
callbacks []Callback
_callbacksMu sync.RWMutex
products map[string]struct{}
_productsMu sync.RWMutex
productsWithCallbacks map[string]ProductCallback
_productsWithCallbacksMu sync.RWMutex
capabilities map[Capability]struct{}
_capabilitiesMu sync.RWMutex
callbacks []Callback
_callbacksMu sync.RWMutex
products map[string]struct{}
productsMu sync.RWMutex
productsWithCallbacks map[string]ProductCallback
productsWithCallbacksMu sync.RWMutex
capabilities map[Capability]struct{}
capabilitiesMu sync.RWMutex

lastError error
}
Expand Down Expand Up @@ -248,18 +248,18 @@ func Subscribe(product string, callback ProductCallback, capabilities ...Capabil
if client == nil {
return ErrClientNotStarted
}
client._productsMu.RLock()
defer client._productsMu.RUnlock()
client.productsMu.RLock()
defer client.productsMu.RUnlock()
if _, found := client.products[product]; found {
return fmt.Errorf("product %s already registered via RegisterProduct", product)
}

client._productsWithCallbacksMu.Lock()
defer client._productsWithCallbacksMu.Unlock()
client.productsWithCallbacksMu.Lock()
defer client.productsWithCallbacksMu.Unlock()
client.productsWithCallbacks[product] = callback

client._capabilitiesMu.Lock()
defer client._capabilitiesMu.Unlock()
client.capabilitiesMu.Lock()
defer client.capabilitiesMu.Unlock()
for _, cap := range capabilities {
client.capabilities[cap] = struct{}{}
}
Expand Down Expand Up @@ -302,10 +302,10 @@ func RegisterProduct(p string) error {
if client == nil {
return ErrClientNotStarted
}
client._productsMu.Lock()
defer client._productsMu.Unlock()
client._productsWithCallbacksMu.RLock()
defer client._productsWithCallbacksMu.RUnlock()
client.productsMu.Lock()
defer client.productsMu.Unlock()
client.productsWithCallbacksMu.RLock()
defer client.productsWithCallbacksMu.RUnlock()
if _, found := client.productsWithCallbacks[p]; found {
return fmt.Errorf("product %s already registered via Subscribe", p)
}
Expand All @@ -318,8 +318,8 @@ func UnregisterProduct(p string) error {
if client == nil {
return ErrClientNotStarted
}
client._productsMu.Lock()
defer client._productsMu.Unlock()
client.productsMu.Lock()
defer client.productsMu.Unlock()
delete(client.products, p)
return nil
}
Expand All @@ -329,10 +329,10 @@ func HasProduct(p string) (bool, error) {
if client == nil {
return false, ErrClientNotStarted
}
client._productsMu.RLock()
defer client._productsMu.RUnlock()
client._productsWithCallbacksMu.RLock()
defer client._productsWithCallbacksMu.RUnlock()
client.productsMu.RLock()
defer client.productsMu.RUnlock()
client.productsWithCallbacksMu.RLock()
defer client.productsWithCallbacksMu.RUnlock()
_, found := client.products[p]
_, foundWithCallback := client.productsWithCallbacks[p]
return found || foundWithCallback, nil
Expand All @@ -344,8 +344,8 @@ func RegisterCapability(cap Capability) error {
if client == nil {
return ErrClientNotStarted
}
client._capabilitiesMu.Lock()
defer client._capabilitiesMu.Unlock()
client.capabilitiesMu.Lock()
defer client.capabilitiesMu.Unlock()
client.capabilities[cap] = struct{}{}
return nil
}
Expand All @@ -356,8 +356,8 @@ func UnregisterCapability(cap Capability) error {
if client == nil {
return ErrClientNotStarted
}
client._capabilitiesMu.Lock()
defer client._capabilitiesMu.Unlock()
client.capabilitiesMu.Lock()
defer client.capabilitiesMu.Unlock()
delete(client.capabilities, cap)
return nil
}
Expand All @@ -367,8 +367,8 @@ func HasCapability(cap Capability) (bool, error) {
if client == nil {
return false, ErrClientNotStarted
}
client._capabilitiesMu.RLock()
defer client._capabilitiesMu.RUnlock()
client.capabilitiesMu.RLock()
defer client.capabilitiesMu.RUnlock()
_, found := client.capabilities[cap]
return found, nil
}
Expand All @@ -382,8 +382,8 @@ func (c *Client) globalCallbacks() []Callback {
}

func (c *Client) productCallbacks() map[string]ProductCallback {
c._productsWithCallbacksMu.RLock()
defer c._productsWithCallbacksMu.RUnlock()
c.productsWithCallbacksMu.RLock()
defer c.productsWithCallbacksMu.RUnlock()
callbacks := make(map[string]ProductCallback, len(c.productsWithCallbacks))
for k, v := range c.productsWithCallbacks {
callbacks[k] = v
Expand All @@ -392,10 +392,10 @@ func (c *Client) productCallbacks() map[string]ProductCallback {
}

func (c *Client) allProducts() []string {
c._productsMu.RLock()
defer c._productsMu.RUnlock()
c._productsWithCallbacksMu.RLock()
defer c._productsWithCallbacksMu.RUnlock()
c.productsMu.RLock()
defer c.productsMu.RUnlock()
c.productsWithCallbacksMu.RLock()
defer c.productsWithCallbacksMu.RUnlock()
products := make([]string, 0, len(c.products)+len(c.productsWithCallbacks))
for p := range c.products {
products = append(products, p)
Expand Down
Loading