diff options
author | Barnabás Pőcze <barnabas.pocze@ideasonboard.com> | 2025-03-07 16:00:21 +0100 |
---|---|---|
committer | Barnabás Pőcze <barnabas.pocze@ideasonboard.com> | 2025-03-21 16:56:58 +0100 |
commit | 1df8091e631b72df8ecda105dae7934b54b1287c (patch) | |
tree | d9598feadb05dcf08078f7b9fedce621870500da | |
parent | 90208694c8c0652eb12407c016a649333a64f990 (diff) |
libcamera: v4l2_videodevice: `lastUsedCounter_` need not be atomic
The `V4L2BufferCache` type is not thread-safe. Its `lastUsedCounter_`
member is not used in contexts where its atomicity would matter.
So it does not need to be have an atomic type.
Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>
Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
-rw-r--r-- | include/libcamera/internal/v4l2_videodevice.h | 3 | ||||
-rw-r--r-- | src/libcamera/v4l2_videodevice.cpp | 4 |
2 files changed, 3 insertions, 4 deletions
diff --git a/include/libcamera/internal/v4l2_videodevice.h b/include/libcamera/internal/v4l2_videodevice.h index f021c2a0..ae6a76cb 100644 --- a/include/libcamera/internal/v4l2_videodevice.h +++ b/include/libcamera/internal/v4l2_videodevice.h @@ -8,7 +8,6 @@ #pragma once #include <array> -#include <atomic> #include <memory> #include <optional> #include <ostream> @@ -158,7 +157,7 @@ private: std::vector<Plane> planes_; }; - std::atomic<uint64_t> lastUsedCounter_; + uint64_t lastUsedCounter_; std::vector<Entry> cache_; /* \todo Expose the miss counter through an instrumentation API. */ unsigned int missCounter_; diff --git a/src/libcamera/v4l2_videodevice.cpp b/src/libcamera/v4l2_videodevice.cpp index e241eb47..f5b3fa09 100644 --- a/src/libcamera/v4l2_videodevice.cpp +++ b/src/libcamera/v4l2_videodevice.cpp @@ -190,7 +190,7 @@ V4L2BufferCache::V4L2BufferCache(const std::vector<std::unique_ptr<FrameBuffer>> { for (const std::unique_ptr<FrameBuffer> &buffer : buffers) cache_.emplace_back(true, - lastUsedCounter_.fetch_add(1, std::memory_order_acq_rel), + lastUsedCounter_++, *buffer.get()); } @@ -258,7 +258,7 @@ int V4L2BufferCache::get(const FrameBuffer &buffer) return -ENOENT; cache_[use] = Entry(false, - lastUsedCounter_.fetch_add(1, std::memory_order_acq_rel), + lastUsedCounter_++, buffer); return use; |