diff --git a/leveldb.go b/leveldb.go index 6268d87..58124d7 100644 --- a/leveldb.go +++ b/leveldb.go @@ -158,13 +158,14 @@ func (ldbs *LevelDBSession) AllKeys(hash []byte) (keys chan []byte, n int, err e ro.SetFillCache(false) it := ldbs.backend.db.NewIterator(ro) + it.SeekToFirst() for ; it.Valid(); it.Next() { n++ } if err = it.GetError(); err != nil { - ro.Close() it.Close() + ro.Close() ldbs.backend.mutex.RUnlock() return } @@ -178,6 +179,7 @@ func (ldbs *LevelDBSession) AllKeys(hash []byte) (keys chan []byte, n int, err e defer close(keys) it := ldbs.backend.db.NewIterator(ro) defer it.Close() + it.SeekToFirst() for ; it.Valid(); it.Next() { keys <- it.Key() }