Clear generates a new memory space, leaving the old memory unreferenced, so it can be claimed by the garbage collector.
()
| 127 | // Clear generates a new memory space, leaving the old memory unreferenced, so |
| 128 | // it can be claimed by the garbage collector. |
| 129 | func (c *Cache) Clear() { |
| 130 | c.mu.Lock() |
| 131 | defer c.mu.Unlock() |
| 132 | |
| 133 | for _, item := range c.items { |
| 134 | if p, ok := item.Value.(*cacheItem).value.(HasOnEvict); ok { |
| 135 | p.OnEvict() |
| 136 | } |
| 137 | } |
| 138 | |
| 139 | c.init() |
| 140 | } |