We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
write
1 parent 7da4976 commit 29c5ac7Copy full SHA for 29c5ac7
1 file changed
cache.go
@@ -16,9 +16,9 @@ var DisableSelectorCache = false
16
var SelectorCacheMaxEntries = 50
17
18
var (
19
- cacheOnce sync.Once
20
- cache *lru.Cache
21
- cacheMutex sync.RWMutex
+ cacheOnce sync.Once
+ cache *lru.Cache
+ cacheMutex sync.Mutex
22
)
23
24
func getQuery(expr string) (*xpath.Expr, error) {
@@ -28,14 +28,11 @@ func getQuery(expr string) (*xpath.Expr, error) {
28
cacheOnce.Do(func() {
29
cache = lru.New(SelectorCacheMaxEntries)
30
})
31
- cacheMutex.RLock()
+ cacheMutex.Lock()
32
+ defer cacheMutex.Unlock()
33
if v, ok := cache.Get(expr); ok {
- cacheMutex.RUnlock()
34
return v.(*xpath.Expr), nil
35
}
36
37
- cacheMutex.Lock()
38
- defer cacheMutex.Unlock()
39
v, err := xpath.Compile(expr)
40
if err != nil {
41
return nil, err
0 commit comments