summaryrefslogtreecommitdiffstats
path: root/runtime/object_lock.h
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/object_lock.h')
-rw-r--r--runtime/object_lock.h21
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_