()
| 179 | } |
| 180 | |
| 181 | func (c *cache) DeleteExpired() { |
| 182 | var evictedItems []kv |
| 183 | timeNow := time.Now().UnixNano() |
| 184 | c.mu.Lock() |
| 185 | for k, v := range c.items { |
| 186 | if v.Expiration > 0 && v.Expiration < timeNow { |
| 187 | v, evicted := c.delete(k) |
| 188 | if evicted { |
| 189 | evictedItems = append(evictedItems, kv{k, v}) |
| 190 | } |
| 191 | } |
| 192 | } |
| 193 | c.mu.Unlock() |
| 194 | for _, v := range evictedItems { |
| 195 | c.onEvicted(v.key, v.value) |
| 196 | } |
| 197 | } |
| 198 | |
| 199 | func (c *cache) Item() map[string]Item { |
| 200 | c.mu.Lock() |