diff options
Diffstat (limited to 'runtime/object_lock.h')
-rw-r--r-- | runtime/object_lock.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/runtime/object_lock.h b/runtime/object_lock.h index eb7cbd85d3..7f02b37258 100644 --- a/runtime/object_lock.h +++ b/runtime/object_lock.h @@ -45,6 +45,27 @@ class ObjectLock { DISALLOW_COPY_AND_ASSIGN(ObjectLock); }; +template <typename T> +class ObjectTryLock { + public: + ObjectTryLock(Thread* self, Handle<T> object) SHARED_REQUIRES(Locks::mutator_lock_); + + ~ObjectTryLock() SHARED_REQUIRES(Locks::mutator_lock_); + + bool Acquired() const { + return acquired_; + } + + private: + Thread* const self_; + Handle<T> const obj_; + bool acquired_; + + + DISALLOW_COPY_AND_ASSIGN(ObjectTryLock); +}; + + } // namespace art #endif // ART_RUNTIME_OBJECT_LOCK_H_ |