diff --git a/common/ImageBuffer.cpp b/common/ImageBuffer.cpp index c88a9795..06c29a00 100644 --- a/common/ImageBuffer.cpp +++ b/common/ImageBuffer.cpp @@ -15,15 +15,18 @@ ImageBuffer::ImageBuffer(size_t buffer_size_bytes) : buffer_size(buffer_size_bytes) { #ifdef JFJOCH_USE_NUMA - buffer = (uint8_t *) numa_alloc_interleaved(buffer_size); -#else - buffer = (uint8_t *) mmap (nullptr, buffer_size, PROT_READ | PROT_WRITE, - MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) ; -#endif + buffer = static_cast(numa_alloc_interleaved(buffer_size)); if (buffer == nullptr) throw JFJochException(JFJochExceptionCategory::MemAllocFailed, "Failed to allocate image buffer"); + #else + buffer = (uint8_t *) mmap (nullptr, buffer_size, PROT_READ | PROT_WRITE, + MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) ; + if (buffer == MAP_FAILED) + throw JFJochException(JFJochExceptionCategory::MemAllocFailed, + "Failed to allocate image buffer"); +#endif memset(buffer, 0, buffer_size); } @@ -241,6 +244,7 @@ void ImageBuffer::GetStartMessage(std::vector &out_v) { } void ImageBuffer::SaveStartMessage(const std::vector &msg) { + std::unique_lock ul(start_message_mutex); start_message = msg; }