diff --git a/packages/binary/messagelayer/tangle/tangle.go b/packages/binary/messagelayer/tangle/tangle.go index 3d64f8a55d81a069aee722b80492eaaf2c2e6b32..0351db08be19617cc18d335ab4aa250acae39cb4 100644 --- a/packages/binary/messagelayer/tangle/tangle.go +++ b/packages/binary/messagelayer/tangle/tangle.go @@ -139,15 +139,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)