consensus/ethash: ensure future cache/dataset is in the lru cache

This commit is contained in:
Felix Lange 2018-01-15 13:58:35 +01:00
parent 0326bb8824
commit ca57aa1670

View file

@ -177,10 +177,11 @@ func (lru *lru) get(epoch uint64) (item, future interface{}) {
item, ok := lru.cache.Get(epoch) item, ok := lru.cache.Get(epoch)
if !ok { if !ok {
if lru.future > 0 && lru.future == epoch { if lru.future > 0 && lru.future == epoch {
return lru.futureItem, nil item = lru.future
} } else {
log.Trace("Requiring new ethash "+lru.what, "epoch", epoch) log.Trace("Requiring new ethash "+lru.what, "epoch", epoch)
item = lru.new(epoch) item = lru.new(epoch)
}
lru.cache.Add(epoch, item) lru.cache.Add(epoch, item)
} }
// Update the 'future item' if epoch is larger than previously seen. // Update the 'future item' if epoch is larger than previously seen.