From 233c483fc70477d7cba7e50def8ea942618ee64f Mon Sep 17 00:00:00 2001 From: Andrej Babic Date: Fri, 3 Apr 2020 15:38:15 +0200 Subject: [PATCH] Make RingBuffer initialization thread safe --- core-writer/src/RingBuffer.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/core-writer/src/RingBuffer.cpp b/core-writer/src/RingBuffer.cpp index 3b046ba..11978b6 100644 --- a/core-writer/src/RingBuffer.cpp +++ b/core-writer/src/RingBuffer.cpp @@ -69,9 +69,14 @@ void RingBuffer::initialize(size_t slot_size) char* RingBuffer::reserve(shared_ptr frame_metadata) { - // TODO: Synchronize this as well. if (!ring_buffer_initialized_) { - initialize(frame_metadata->frame_bytes_size); + { + lock_guard lock(ringbuffer_slots_mutex_); + + if (!ring_buffer_initialized_) { + initialize(frame_metadata->frame_bytes_size); + } + } } if (frame_metadata->frame_bytes_size > slot_size_) {