From f4b70a4bfd58986b913c16d6b14c1b06dfe83d94 Mon Sep 17 00:00:00 2001 From: jayantjn Date: Fri, 22 Nov 2024 19:55:23 +0530 Subject: [PATCH] Decrease usage hint after handover to sender (#109) --- src/DataSenderProtoWriter.cpp | 2 ++ src/RawDataManager.h | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/DataSenderProtoWriter.cpp b/src/DataSenderProtoWriter.cpp index 19a818d..b122a56 100644 --- a/src/DataSenderProtoWriter.cpp +++ b/src/DataSenderProtoWriter.cpp @@ -136,6 +136,8 @@ DataSenderProtoWriter::append( const CollectedSignal &msg ) auto data = loanedRawDataFrame.getData(); auto stringSize = loanedRawDataFrame.getSize(); capturedSignal.set_string_value( reinterpret_cast( data ), stringSize ); + mRawDataBufferManager->decreaseHandleUsageHint( + msg.signalID, signalValue.value.uint32Val, RawData::BufferHandleUsageStage::HANDED_OVER_TO_SENDER ); size += STRING_OVERHEAD + stringSize; break; } diff --git a/src/RawDataManager.h b/src/RawDataManager.h index 77a25a9..dbb97d8 100644 --- a/src/RawDataManager.h +++ b/src/RawDataManager.h @@ -57,8 +57,8 @@ struct Frame // being referenced somewhere. Each element in the array means // a different type of usage so that the BufferManager can // prioritize some types of usage when it needs to free up - // space. As long as mDataInUseCounter is 0, the data can be - // deleted regardless of the mUsageHintCountersPerStage value. + // space. The data can be deleted only when both + // mDataInUseCounter and mUsageHintCountersPerStage are 0 Frame( BufferHandle handleID, Timestamp timestamp, RawDataType rawData ) : mHandleID( handleID )