Android-cuttlefish cvd tool
Classes | Namespaces | Macros
thread_annotations.h File Reference
#include <mutex>
Include dependency graph for thread_annotations.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  android::base::ScopedLockAssertion
 

Namespaces

namespace  android
 
namespace  android::base
 

Macros

#define THREAD_ANNOTATION_ATTRIBUTE__(x)   __attribute__((x))
 
#define CAPABILITY(x)    THREAD_ANNOTATION_ATTRIBUTE__(capability(x))
 
#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))
 
#define PT_GUARDED_BY(x)    THREAD_ANNOTATION_ATTRIBUTE__(pt_guarded_by(x))
 
#define EXCLUSIVE_LOCKS_REQUIRED(...)    THREAD_ANNOTATION_ATTRIBUTE__(exclusive_locks_required(__VA_ARGS__))
 
#define SHARED_LOCKS_REQUIRED(...)    THREAD_ANNOTATION_ATTRIBUTE__(shared_locks_required(__VA_ARGS__))
 
#define ACQUIRED_BEFORE(...)    THREAD_ANNOTATION_ATTRIBUTE__(acquired_before(__VA_ARGS__))
 
#define ACQUIRED_AFTER(...)    THREAD_ANNOTATION_ATTRIBUTE__(acquired_after(__VA_ARGS__))
 
#define REQUIRES(...)    THREAD_ANNOTATION_ATTRIBUTE__(requires_capability(__VA_ARGS__))
 
#define REQUIRES_SHARED(...)    THREAD_ANNOTATION_ATTRIBUTE__(requires_shared_capability(__VA_ARGS__))
 
#define ACQUIRE(...)    THREAD_ANNOTATION_ATTRIBUTE__(acquire_capability(__VA_ARGS__))
 
#define ACQUIRE_SHARED(...)    THREAD_ANNOTATION_ATTRIBUTE__(acquire_shared_capability(__VA_ARGS__))
 
#define RELEASE(...)    THREAD_ANNOTATION_ATTRIBUTE__(release_capability(__VA_ARGS__))
 
#define RELEASE_SHARED(...)    THREAD_ANNOTATION_ATTRIBUTE__(release_shared_capability(__VA_ARGS__))
 
#define TRY_ACQUIRE(...)    THREAD_ANNOTATION_ATTRIBUTE__(try_acquire_capability(__VA_ARGS__))
 
#define TRY_ACQUIRE_SHARED(...)    THREAD_ANNOTATION_ATTRIBUTE__(try_acquire_shared_capability(__VA_ARGS__))
 
#define EXCLUDES(...)    THREAD_ANNOTATION_ATTRIBUTE__(locks_excluded(__VA_ARGS__))
 
#define ASSERT_CAPABILITY(x)    THREAD_ANNOTATION_ATTRIBUTE__(assert_capability(x))
 
#define ASSERT_SHARED_CAPABILITY(x)    THREAD_ANNOTATION_ATTRIBUTE__(assert_shared_capability(x))
 
#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)
 

Macro Definition Documentation

◆ ACQUIRE

#define ACQUIRE (   ...)     THREAD_ANNOTATION_ATTRIBUTE__(acquire_capability(__VA_ARGS__))

◆ ACQUIRE_SHARED

#define ACQUIRE_SHARED (   ...)     THREAD_ANNOTATION_ATTRIBUTE__(acquire_shared_capability(__VA_ARGS__))

◆ ACQUIRED_AFTER

#define ACQUIRED_AFTER (   ...)     THREAD_ANNOTATION_ATTRIBUTE__(acquired_after(__VA_ARGS__))

◆ ACQUIRED_BEFORE

#define ACQUIRED_BEFORE (   ...)     THREAD_ANNOTATION_ATTRIBUTE__(acquired_before(__VA_ARGS__))

◆ ASSERT_CAPABILITY

#define ASSERT_CAPABILITY (   x)     THREAD_ANNOTATION_ATTRIBUTE__(assert_capability(x))

◆ ASSERT_SHARED_CAPABILITY

#define ASSERT_SHARED_CAPABILITY (   x)     THREAD_ANNOTATION_ATTRIBUTE__(assert_shared_capability(x))

◆ CAPABILITY

#define CAPABILITY (   x)     THREAD_ANNOTATION_ATTRIBUTE__(capability(x))

◆ EXCLUDES

#define EXCLUDES (   ...)     THREAD_ANNOTATION_ATTRIBUTE__(locks_excluded(__VA_ARGS__))

◆ EXCLUSIVE_LOCK_FUNCTION

#define EXCLUSIVE_LOCK_FUNCTION (   ...)     THREAD_ANNOTATION_ATTRIBUTE__(exclusive_lock_function(__VA_ARGS__))

◆ EXCLUSIVE_LOCKS_REQUIRED

#define EXCLUSIVE_LOCKS_REQUIRED (   ...)     THREAD_ANNOTATION_ATTRIBUTE__(exclusive_locks_required(__VA_ARGS__))

◆ EXCLUSIVE_TRYLOCK_FUNCTION

#define EXCLUSIVE_TRYLOCK_FUNCTION (   ...)     THREAD_ANNOTATION_ATTRIBUTE__(exclusive_trylock_function(__VA_ARGS__))

◆ GUARDED_BY

#define GUARDED_BY (   x)     THREAD_ANNOTATION_ATTRIBUTE__(guarded_by(x))

◆ LOCK_RETURNED

#define LOCK_RETURNED (   x)     THREAD_ANNOTATION_ATTRIBUTE__(lock_returned(x))

◆ NO_THREAD_SAFETY_ANALYSIS

#define NO_THREAD_SAFETY_ANALYSIS    THREAD_ANNOTATION_ATTRIBUTE__(no_thread_safety_analysis)

◆ PT_GUARDED_BY

#define PT_GUARDED_BY (   x)     THREAD_ANNOTATION_ATTRIBUTE__(pt_guarded_by(x))

◆ RELEASE

#define RELEASE (   ...)     THREAD_ANNOTATION_ATTRIBUTE__(release_capability(__VA_ARGS__))

◆ RELEASE_SHARED

#define RELEASE_SHARED (   ...)     THREAD_ANNOTATION_ATTRIBUTE__(release_shared_capability(__VA_ARGS__))

◆ REQUIRES

#define REQUIRES (   ...)     THREAD_ANNOTATION_ATTRIBUTE__(requires_capability(__VA_ARGS__))

◆ REQUIRES_SHARED

#define REQUIRES_SHARED (   ...)     THREAD_ANNOTATION_ATTRIBUTE__(requires_shared_capability(__VA_ARGS__))

◆ RETURN_CAPABILITY

#define RETURN_CAPABILITY (   x)     THREAD_ANNOTATION_ATTRIBUTE__(lock_returned(x))

◆ SCOPED_CAPABILITY

#define SCOPED_CAPABILITY    THREAD_ANNOTATION_ATTRIBUTE__(scoped_lockable)

◆ SCOPED_LOCKABLE

#define SCOPED_LOCKABLE    THREAD_ANNOTATION_ATTRIBUTE__(scoped_lockable)

◆ SHARED_CAPABILITY

#define SHARED_CAPABILITY (   ...)     THREAD_ANNOTATION_ATTRIBUTE__(shared_capability(__VA_ARGS__))

◆ SHARED_LOCK_FUNCTION

#define SHARED_LOCK_FUNCTION (   ...)     THREAD_ANNOTATION_ATTRIBUTE__(shared_lock_function(__VA_ARGS__))

◆ SHARED_LOCKS_REQUIRED

#define SHARED_LOCKS_REQUIRED (   ...)     THREAD_ANNOTATION_ATTRIBUTE__(shared_locks_required(__VA_ARGS__))

◆ SHARED_TRYLOCK_FUNCTION

#define SHARED_TRYLOCK_FUNCTION (   ...)     THREAD_ANNOTATION_ATTRIBUTE__(shared_trylock_function(__VA_ARGS__))

◆ THREAD_ANNOTATION_ATTRIBUTE__

#define THREAD_ANNOTATION_ATTRIBUTE__ (   x)    __attribute__((x))

◆ TRY_ACQUIRE

#define TRY_ACQUIRE (   ...)     THREAD_ANNOTATION_ATTRIBUTE__(try_acquire_capability(__VA_ARGS__))

◆ TRY_ACQUIRE_SHARED

#define TRY_ACQUIRE_SHARED (   ...)     THREAD_ANNOTATION_ATTRIBUTE__(try_acquire_shared_capability(__VA_ARGS__))

◆ UNLOCK_FUNCTION

#define UNLOCK_FUNCTION (   ...)     THREAD_ANNOTATION_ATTRIBUTE__(unlock_function(__VA_ARGS__))