diff --git a/packages/binary/messagelayer/tangle/tangle.go b/packages/binary/messagelayer/tangle/tangle.go index d6fa07acf90d93500f9eb768a1f0bb06d4ab79b6..c56cf5892f427aaad9ba016553b7c9d3172e7ae7 100644 --- a/packages/binary/messagelayer/tangle/tangle.go +++ b/packages/binary/messagelayer/tangle/tangle.go @@ -148,15 +148,15 @@ func (tangle *Tangle) Prune() error { func (tangle *Tangle) DBStats() (solidCount int, messageCount int, avgSolidificationTime float64) { var sumSolidificationTime time.Duration tangle.messageMetadataStorage.ForEach(func(key []byte, cachedObject objectstorage.CachedObject) bool { - defer cachedObject.Release() - cachedMessageMetadata := &CachedMessageMetadata{CachedObject: cachedObject} - msgMetaData := cachedMessageMetadata.Unwrap() - messageCount++ - received := msgMetaData.ReceivedTime() - if msgMetaData.IsSolid() { - solidCount++ - sumSolidificationTime += msgMetaData.solidificationTime.Sub(received) - } + cachedObject.Consume(func(object objectstorage.StorableObject) { + msgMetaData := object.(*MessageMetadata) + messageCount++ + received := msgMetaData.ReceivedTime() + if msgMetaData.IsSolid() { + solidCount++ + sumSolidificationTime += msgMetaData.solidificationTime.Sub(received) + } + }) return true }) avgSolidificationTime = float64(sumSolidificationTime.Milliseconds()) / float64(solidCount)