swarm/storage: close dbStored when we are retrieving from LevelDB

This commit is contained in:
Anton Evangelatov 2018-03-22 14:55:25 +01:00
parent 4ffd38efb7
commit 61ffbbbe78
2 changed files with 7 additions and 4 deletions

View file

@ -707,6 +707,7 @@ func (s *LDBStore) get(key Key) (chunk *Chunk, err error) {
}
chunk = NewChunk(key, nil)
close(chunk.dbStored)
decodeData(data, chunk)
} else {
err = ErrChunkNotFound

View file

@ -230,6 +230,7 @@ func (s *MemStore) Get(hash Key) (chunk *Chunk, err error) {
l := hash.bits(bitpos, node.bits)
st := node.subtree[l]
if st == nil {
log.Trace("memstore.get ErrChunkNotFound", "key", hash)
return nil, ErrChunkNotFound
}
bitpos += node.bits
@ -251,6 +252,7 @@ func (s *MemStore) Get(hash Key) (chunk *Chunk, err error) {
err = ErrChunkNotFound
}
log.Trace("memstore.get return", "key", hash, "chunk", chunk, "err", err)
return
}
@ -298,11 +300,11 @@ func (s *MemStore) removeOldest() {
}
if node.entry.ReqC == nil {
log.Trace(fmt.Sprintf("Memstore Clean: Waiting for chunk %v to be saved", node.entry.Key.Log()))
<-node.entry.dbStored
log.Trace(fmt.Sprintf("Memstore Clean: Chunk %v saved to DBStore. Ready to clear from mem.", node.entry.Key.Log()))
if node.entry.ReqC == nil {
memstoreRemoveCounter.Inc(1)
node.entry = nil
s.entryCnt--