add comment

This commit is contained in:
Sina Mahmoodi 2025-04-16 15:22:51 +02:00 committed by lightclient
parent bd697bc671
commit 5845427d0d
No known key found for this signature in database
GPG key ID: 657913021EF45A6A

View file

@ -55,8 +55,6 @@ func New(datadir string) (*EraDatabase, error) {
return nil, err return nil, err
} }
db := &EraDatabase{datadir: datadir, cache: lru.NewCache[uint64, *era.Era](openFileLimit)} db := &EraDatabase{datadir: datadir, cache: lru.NewCache[uint64, *era.Era](openFileLimit)}
// Take care to close era1 files when they are evicted or replaced
// in the cache to avoid leaking file descriptors.
closeEra := func(epoch uint64, e *era.Era) { closeEra := func(epoch uint64, e *era.Era) {
if e == nil { if e == nil {
log.Warn("Era1 cache contained nil value", "epoch", epoch) log.Warn("Era1 cache contained nil value", "epoch", epoch)
@ -67,7 +65,10 @@ func New(datadir string) (*EraDatabase, error) {
} }
} }
// Take care to close era1 files when they are evicted from cache.
db.cache.OnEvicted(closeEra) db.cache.OnEvicted(closeEra)
// Concurrently calling GetRaw* methods can cause the same era1 file to be
// opened multiple times.
db.cache.OnReplaced(closeEra) db.cache.OnReplaced(closeEra)
log.Info("Opened erastore", "datadir", datadir) log.Info("Opened erastore", "datadir", datadir)
return db, nil return db, nil