Skip to content

Commit daeec88

Browse files
committed
feat: make provMutex a RWMutex in the registry
1 parent f2b71d3 commit daeec88

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

internal/registry/registry.go

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ type Registry struct {
5151
filterIPs bool
5252
freezer *freeze.Freezer
5353
maxPoll int
54-
provMutex sync.Mutex
54+
provMutex sync.RWMutex
5555
pollDone chan struct{}
5656
providers map[peer.ID]*ProviderInfo
5757
sequences *sequences
@@ -843,17 +843,17 @@ func (r *Registry) register(ctx context.Context, info *ProviderInfo) error {
843843

844844
// IsRegistered checks if the provider is in the registry
845845
func (r *Registry) IsRegistered(providerID peer.ID) bool {
846-
r.provMutex.Lock()
846+
r.provMutex.RLock()
847847
_, found := r.providers[providerID]
848-
r.provMutex.Unlock()
848+
r.provMutex.RUnlock()
849849
return found
850850
}
851851

852852
// ProviderInfo returns information for a registered provider.
853853
func (r *Registry) ProviderInfo(providerID peer.ID) (*ProviderInfo, bool) {
854-
r.provMutex.Lock()
854+
r.provMutex.RLock()
855855
pinfo, ok := r.providers[providerID]
856-
r.provMutex.Unlock()
856+
r.provMutex.RUnlock()
857857
if !ok {
858858
return nil, false
859859
}
@@ -863,7 +863,7 @@ func (r *Registry) ProviderInfo(providerID peer.ID) (*ProviderInfo, bool) {
863863
// AllProviderInfo returns information for all registered providers that are
864864
// active and allowed.
865865
func (r *Registry) AllProviderInfo() []*ProviderInfo {
866-
r.provMutex.Lock()
866+
r.provMutex.RLock()
867867
infos := make([]*ProviderInfo, 0, len(r.providers))
868868
for _, info := range r.providers {
869869
if r.assigned != nil {
@@ -878,7 +878,7 @@ func (r *Registry) AllProviderInfo() []*ProviderInfo {
878878
}
879879
infos = append(infos, info)
880880
}
881-
r.provMutex.Unlock()
881+
r.provMutex.RUnlock()
882882

883883
// Stats tracks the number of active, allowed providers.
884884
stats.Record(context.Background(), metrics.ProviderCount.M(int64(len(infos))))
@@ -1055,8 +1055,8 @@ func (r *Registry) RemoveProvider(ctx context.Context, providerID peer.ID) error
10551055
}
10561056

10571057
func (r *Registry) ProviderByPublisher(pubID peer.ID) (peer.ID, bool) {
1058-
r.provMutex.Lock()
1059-
defer r.provMutex.Unlock()
1058+
r.provMutex.RLock()
1059+
defer r.provMutex.RUnlock()
10601060

10611061
pinfo, ok := r.providers[pubID]
10621062
if ok && pinfo.Publisher == pubID {

0 commit comments

Comments
 (0)