From bc5a32e2ad8f815e7023b13c6f9a1b64253c0a32 Mon Sep 17 00:00:00 2001 From: Andreas Gampe Date: Wed, 31 Aug 2016 13:26:20 -0700 Subject: [PATCH] Base: add more thread annotations These are taken from ART and wrap more attributes. Test: m Change-Id: I545fc9ab88cf9d2db4de2cb8893e2a35f6365f51 --- .../include/android-base/thread_annotations.h | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/base/include/android-base/thread_annotations.h b/base/include/android-base/thread_annotations.h index 24221024c..fbb592336 100644 --- a/base/include/android-base/thread_annotations.h +++ b/base/include/android-base/thread_annotations.h @@ -29,6 +29,9 @@ #define SCOPED_CAPABILITY \ THREAD_ANNOTATION_ATTRIBUTE__(scoped_lockable) +#define SHARED_CAPABILITY(...) \ + THREAD_ANNOTATION_ATTRIBUTE__(shared_capability(__VA_ARGS__)) + #define GUARDED_BY(x) \ THREAD_ANNOTATION_ATTRIBUTE__(guarded_by(x)) @@ -77,6 +80,27 @@ #define RETURN_CAPABILITY(x) \ THREAD_ANNOTATION_ATTRIBUTE__(lock_returned(x)) +#define EXCLUSIVE_LOCK_FUNCTION(...) \ + THREAD_ANNOTATION_ATTRIBUTE__(exclusive_lock_function(__VA_ARGS__)) + +#define EXCLUSIVE_TRYLOCK_FUNCTION(...) \ + THREAD_ANNOTATION_ATTRIBUTE__(exclusive_trylock_function(__VA_ARGS__)) + +#define SHARED_LOCK_FUNCTION(...) \ + THREAD_ANNOTATION_ATTRIBUTE__(shared_lock_function(__VA_ARGS__)) + +#define SHARED_TRYLOCK_FUNCTION(...) \ + THREAD_ANNOTATION_ATTRIBUTE__(shared_trylock_function(__VA_ARGS__)) + +#define UNLOCK_FUNCTION(...) \ + THREAD_ANNOTATION_ATTRIBUTE__(unlock_function(__VA_ARGS__)) + +#define SCOPED_LOCKABLE \ + THREAD_ANNOTATION_ATTRIBUTE__(scoped_lockable) + +#define LOCK_RETURNED(x) \ + THREAD_ANNOTATION_ATTRIBUTE__(lock_returned(x)) + #define NO_THREAD_SAFETY_ANALYSIS \ THREAD_ANNOTATION_ATTRIBUTE__(no_thread_safety_analysis)