From 98a3be727ad4be440c8459c3c8a21d0e3adeb10b Mon Sep 17 00:00:00 2001 From: Andrej Babic Date: Tue, 28 Apr 2020 15:29:57 +0200 Subject: [PATCH] Revert ringbuffer changes --- core-writer/src/RingBuffer.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/core-writer/src/RingBuffer.cpp b/core-writer/src/RingBuffer.cpp index 097f9f5..2c7ce67 100644 --- a/core-writer/src/RingBuffer.cpp +++ b/core-writer/src/RingBuffer.cpp @@ -203,6 +203,26 @@ pair, char*> RingBuffer::read() cout << " Received metadata for frame_index "; cout << frame_metadata->frame_index << endl; #endif + + // Check if the references ring buffer slot is valid. + { + lock_guard lock(ringbuffer_slots_mutex_); + + if (!ringbuffer_slots_[frame_metadata->buffer_slot_index]) { + stringstream err_msg; + + using namespace date; + using namespace chrono; + err_msg << "[" << system_clock::now() << "]"; + err_msg << "[RingBuffer::read]"; + err_msg << " Ring buffer slot"; + err_msg << " referenced in message header "; + err_msg << frame_metadata->buffer_slot_index << " is empty."; + err_msg << endl; + + throw runtime_error(err_msg.str()); + } + } return {frame_metadata, get_buffer_slot_address(frame_metadata->buffer_slot_index)};