func (s *SingleFlight) Reset() {
	s.mu.Lock()
	defer s.mu.Unlock()
	s.store = sync.Map{}
}
Reset invalidates all cache entries.
package cache
import (
	"sync"
)
type SingleFlight struct {
	mu    sync.RWMutex  
	store sync.Map
}
type entry struct {
	compute sync.Once
	val     interface{}
	err     error
}
func (s *SingleFlight) LoadOrStore(key interface{}, valFn func() (val interface{}, err error)) (interface{}, error) {
	s.mu.RLock()
	defer s.mu.RUnlock()
	eUntyped, _ := s.store.LoadOrStore(key, &entry{})
	e := eUntyped.(*entry)
	e.compute.Do(func() {
		e.val, e.err = valFn()
	})
	return e.val, e.err
}
func (s *SingleFlight) Load(key interface{}) (val interface{}, err error, loaded bool) {
	s.mu.RLock()
	defer s.mu.RUnlock()
	var eUntyped interface{}
	eUntyped, loaded = s.store.Load(key)
	if loaded {
		e := eUntyped.(*entry)
		val = e.val
		err = e.err
	}
	return
}
func (s *SingleFlight) Store(key interface{}, val interface{}) {
	s.mu.RLock()
	defer s.mu.RUnlock()
	e := &entry{val: val}
	e.compute.Do(func() {})  
	s.store.Store(key, e)
}
func (s *SingleFlight) Delete(key interface{}) {
	s.mu.RLock()
	defer s.mu.RUnlock()
	s.store.Delete(key)
}