diff options
Diffstat (limited to 'test/SemaObjCXX/thread-safety-analysis.h')
-rw-r--r-- | test/SemaObjCXX/thread-safety-analysis.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/test/SemaObjCXX/thread-safety-analysis.h b/test/SemaObjCXX/thread-safety-analysis.h new file mode 100644 index 0000000000..f657b7e50a --- /dev/null +++ b/test/SemaObjCXX/thread-safety-analysis.h @@ -0,0 +1,17 @@ +class __attribute__((lockable)) Lock { +public: + void Acquire() __attribute__((exclusive_lock_function())) {} + void Release() __attribute__((unlock_function())) {} +}; + +class __attribute__((scoped_lockable)) AutoLock { +public: + AutoLock(Lock &lock) __attribute__((exclusive_lock_function(lock))) + : lock_(lock) { + lock.Acquire(); + } + ~AutoLock() __attribute__((unlock_function())) { lock_.Release(); } + +private: + Lock &lock_; +}; |