Go to the documentation of this file.
14 #if defined(QUICR_HAS_THREAD_SAFETY_ANNOTATIONS)
16 #define QUICR_CAPABILITY(name) __attribute__((capability(name)))
19 #define QUICR_ACQUIRE(...) __attribute__((acquire_capability(__VA_ARGS__)))
22 #define QUICR_RELEASE(...) __attribute__((release_capability(__VA_ARGS__)))
25 #define QUICR_REQUIRES(...) __attribute__((requires_capability(__VA_ARGS__)))
28 #define QUICR_EXCLUDES(...) __attribute__((locks_excluded(__VA_ARGS__)))
31 #define QUICR_NO_THREAD_SAFETY_ANALYSIS __attribute__((no_thread_safety_analysis))
34 #define QUICR_TRY_ACQUIRE(...) __attribute__((try_acquire_capability(__VA_ARGS__)))
37 #define QUICR_GUARDED_BY(...) __attribute__((guarded_by(__VA_ARGS__)))
40 #define QUICR_PT_GUARDED_BY(...) __attribute__((pt_guarded_by(__VA_ARGS__)))
43 #define QUICR_CAPABILITY(name)
46 #define QUICR_ACQUIRE(...)
49 #define QUICR_RELEASE(...)
52 #define QUICR_REQUIRES(...)
55 #define QUICR_EXCLUDES(...)
58 #define QUICR_NO_THREAD_SAFETY_ANALYSIS
61 #define QUICR_TRY_ACQUIRE(...)
64 #define QUICR_GUARDED_BY(...)
67 #define QUICR_PT_GUARDED_BY(...)