diff --git a/frame.go b/frame.go index d52cb8fe1..1d6867746 100644 --- a/frame.go +++ b/frame.go @@ -113,8 +113,8 @@ func (f *Frame) RowAttrStore() *AttrStore { return f.rowAttrStore } // MaxSlice returns the max slice in the frame. func (f *Frame) MaxSlice() uint64 { - f.mu.Lock() - defer f.mu.Unlock() + f.mu.RLock() + defer f.mu.RUnlock() var max uint64 for _, view := range f.views { @@ -129,8 +129,8 @@ func (f *Frame) MaxSlice() uint64 { // MaxInverseSlice returns the max inverse slice in the frame. func (f *Frame) MaxInverseSlice() uint64 { - f.mu.Lock() - defer f.mu.Unlock() + f.mu.RLock() + defer f.mu.RUnlock() view := f.views[ViewInverse] if view == nil { diff --git a/index.go b/index.go index 93100e1da..256c44184 100644 --- a/index.go +++ b/index.go @@ -276,8 +276,8 @@ func (i *Index) MaxSlice() uint64 { if i == nil { return 0 } - i.mu.Lock() - defer i.mu.Unlock() + i.mu.RLock() + defer i.mu.RUnlock() max := i.remoteMaxSlice for _, f := range i.frames { @@ -302,8 +302,8 @@ func (i *Index) MaxInverseSlice() uint64 { if i == nil { return 0 } - i.mu.Lock() - defer i.mu.Unlock() + i.mu.RLock() + defer i.mu.RUnlock() max := i.remoteMaxInverseSlice for _, f := range i.frames { @@ -323,8 +323,8 @@ func (i *Index) SetRemoteMaxInverseSlice(v uint64) { // TimeQuantum returns the default time quantum for the index. func (i *Index) TimeQuantum() TimeQuantum { - i.mu.Lock() - defer i.mu.Unlock() + i.mu.RLock() + defer i.mu.RUnlock() return i.timeQuantum } @@ -380,8 +380,8 @@ func (i *Index) inputDefinition(name string) *InputDefinition { return i.inputDe // Frames returns a list of all frames in the index. func (i *Index) Frames() []*Frame { - i.mu.Lock() - defer i.mu.Unlock() + i.mu.RLock() + defer i.mu.RUnlock() a := make([]*Frame, 0, len(i.frames)) for _, f := range i.frames { diff --git a/view.go b/view.go index 3f5a61437..e9bbb9c5f 100644 --- a/view.go +++ b/view.go @@ -174,8 +174,8 @@ func (v *View) Close() error { // MaxSlice returns the max slice in the view. func (v *View) MaxSlice() uint64 { - v.mu.Lock() - defer v.mu.Unlock() + v.mu.RLock() + defer v.mu.RUnlock() var max uint64 for slice := range v.fragments {