func (cdbm *ArcCdbm) evict(f CacheCleanFunc) { var cdb base.CacheDirectoryBlock if cdbm.t1.size >= max(1, cdbm.target_t1) { cdb = cdbm.t1.RemoveLRU() acdb := cdb.(*ArcCdb) acdb.where = in_b1 acdb.element = cdbm.b1.PushBack(acdb) } else { cdb = cdbm.t2.RemoveLRU() acdb := cdb.(*ArcCdb) acdb.where = in_b2 acdb.element = cdbm.b2.PushBack(acdb) } object := cdb.GetObject() cdbm.Size -= object.Size() if f != nil { f(object) } cdb.SetObject(nil) return }