diff --git a/frame.go b/frame.go index 3da55cc93..e6792f4c0 100644 --- a/frame.go +++ b/frame.go @@ -533,8 +533,8 @@ func (f *Frame) view(name string) *View { return f.views[name] } // Views returns a list of all views in the frame. func (f *Frame) Views() []*View { - f.mu.Lock() - defer f.mu.Unlock() + f.mu.RLock() + defer f.mu.RUnlock() other := make([]*View, 0, len(f.views)) for _, view := range f.views { diff --git a/holder.go b/holder.go index 7cbb8ca42..416ddc232 100644 --- a/holder.go +++ b/holder.go @@ -196,15 +196,14 @@ func (h *Holder) index(name string) *Index { return h.indexes[name] } // Indexes returns a list of all indexes in the holder. func (h *Holder) Indexes() []*Index { - h.mu.Lock() - defer h.mu.Unlock() - + h.mu.RLock() a := make([]*Index, 0, len(h.indexes)) for _, index := range h.indexes { a = append(a, index) } - sort.Sort(indexSlice(a)) + h.mu.RUnlock() + sort.Sort(indexSlice(a)) return a }