Make RingBuffer initialization thread safe

This commit is contained in:
2020-04-03 15:38:15 +02:00
parent d571cdfed7
commit 233c483fc7
+7 -2
View File
@@ -69,9 +69,14 @@ void RingBuffer::initialize(size_t slot_size)
char* RingBuffer::reserve(shared_ptr<FrameMetadata> frame_metadata)
{
// TODO: Synchronize this as well.
if (!ring_buffer_initialized_) {
initialize(frame_metadata->frame_bytes_size);
{
lock_guard<mutex> lock(ringbuffer_slots_mutex_);
if (!ring_buffer_initialized_) {
initialize(frame_metadata->frame_bytes_size);
}
}
}
if (frame_metadata->frame_bytes_size > slot_size_) {