DfsPackFile.isIndexLoaded() uses the DfsBlockCache.Ref.get() method to check if the index loaded. However, using the get() method marks a hot bit in the cache, which can cause the index to never be unloaded and seem hotter than it really is. Add a has() method which only checks if the value is not null and does not update the hot bit. Change-Id: I7e9ed216f6e273e8f5d79ae573973197654419b4tags/v3.2.0.201312181205-r
hot = true; | hot = true; | ||||
return v; | return v; | ||||
} | } | ||||
boolean has() { | |||||
return value != null; | |||||
} | |||||
} | } | ||||
} | } |
*/ | */ | ||||
public boolean isIndexLoaded() { | public boolean isIndexLoaded() { | ||||
DfsBlockCache.Ref<PackIndex> idxref = index; | DfsBlockCache.Ref<PackIndex> idxref = index; | ||||
return idxref != null && idxref.get() != null; | |||||
return idxref != null && idxref.has(); | |||||
} | } | ||||
/** @return bytes cached in memory for this pack, excluding the index. */ | /** @return bytes cached in memory for this pack, excluding the index. */ |