summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorNicholas Roth <nicholas@rothemail.net>2022-10-27 22:17:18 -0500
committerKieran Bingham <kieran.bingham@ideasonboard.com>2022-10-28 11:37:41 +0100
commit88d059105b611be03d67559aa7fbbab7c45c8ace (patch)
treee65e5728e080f28c7808ea8530ad7d28752c61bd /src
parenta8113fb3a89984cc65d51436480cee45b60543e8 (diff)
ipa: add missing thread-safety annotations
The raspberrypi IPA is missing thread-safety annotations, which breaks the build. Add required thread-safety annotations. ../src/ipa/raspberrypi/controller/metadata.h:108:31: error: mutex 'mutex_' is still held at the end of function [-Werror,-Wthread-safety-analysis] void lock() { mutex_.lock(); } ^ ../src/ipa/raspberrypi/controller/metadata.h:108:23: note: mutex acquired here void lock() { mutex_.lock(); } ^ ../src/ipa/raspberrypi/controller/metadata.h:109:25: error: releasing mutex 'mutex_' that was not held [-Werror,-Wthread-safety-analysis] void unlock() { mutex_.unlock(); } ^ Signed-off-by: Nicholas Roth <nicholas@rothemail.net> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Naushir Patuck <naush@raspberrypi.com> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Diffstat (limited to 'src')
-rw-r--r--src/ipa/raspberrypi/controller/metadata.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/ipa/raspberrypi/controller/metadata.h b/src/ipa/raspberrypi/controller/metadata.h
index 0f7ebfaf..870b6e26 100644
--- a/src/ipa/raspberrypi/controller/metadata.h
+++ b/src/ipa/raspberrypi/controller/metadata.h
@@ -13,9 +13,11 @@
#include <mutex>
#include <string>
+#include <libcamera/base/thread_annotations.h>
+
namespace RPiController {
-class Metadata
+class LIBCAMERA_TSA_CAPABILITY("mutex") Metadata
{
public:
Metadata() = default;
@@ -103,8 +105,8 @@ public:
* locks with the standard lock classes.
* e.g. std::lock_guard<RPiController::Metadata> lock(metadata)
*/
- void lock() { mutex_.lock(); }
- void unlock() { mutex_.unlock(); }
+ void lock() LIBCAMERA_TSA_ACQUIRE() { mutex_.lock(); }
+ void unlock() LIBCAMERA_TSA_RELEASE() { mutex_.unlock(); }
private:
mutable std::mutex mutex_;