Skip to content

Commit 2371d93

Browse files
hongkuancnswithek
authored andcommitted
Fix data race in Items()
1 parent 66d8e52 commit 2371d93

File tree

2 files changed

+4
-3
lines changed

2 files changed

+4
-3
lines changed

cache.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -469,9 +469,9 @@ func (c *Cache[K, V]) Items() map[K]*Item[K, V] {
469469

470470
items := make(map[K]*Item[K, V], len(c.items.values))
471471
for k := range c.items.values {
472-
item := c.get(k, false, false)
473-
if item != nil {
474-
items[k] = item.Value.(*Item[K, V])
472+
item := c.items.values[k].Value.(*Item[K, V])
473+
if item != nil && !item.isExpiredUnsafe() {
474+
items[k] = item
475475
}
476476
}
477477

cache_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -837,6 +837,7 @@ func Test_Cache_Keys(t *testing.T) {
837837

838838
func Test_Cache_Items(t *testing.T) {
839839
cache := prepCache(time.Hour, "1", "2", "3")
840+
addToCache(cache, time.Nanosecond, "4")
840841
items := cache.Items()
841842
require.Len(t, items, 3)
842843

0 commit comments

Comments
 (0)