From 2d5f39ed5aeaeb7ca22b07b4c6e8c56348ef8893 Mon Sep 17 00:00:00 2001 From: Mathieu Chartier Date: Fri, 19 Sep 2014 17:52:37 -0700 Subject: Add ScopedAssertNoThreadSuspension Added a new class, ScopedAssertNoThreadSuspension. Deleted some unnecessary ScopedAssertNoThreadSuspension since VisitObjects already has a ScopedAssertNoThreadSuspension. Change-Id: I29ec0006120c39a27184d30e2d1d0c179e203776 --- runtime/thread.h | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'runtime/thread.h') diff --git a/runtime/thread.h b/runtime/thread.h index d96b50ba13..164eb86f67 100644 --- a/runtime/thread.h +++ b/runtime/thread.h @@ -1180,6 +1180,23 @@ class Thread { DISALLOW_COPY_AND_ASSIGN(Thread); }; +class ScopedAssertNoThreadSuspension { + public: + ScopedAssertNoThreadSuspension(Thread* self, const char* cause) + : self_(self), old_cause_(self->StartAssertNoThreadSuspension(cause)) { + } + ~ScopedAssertNoThreadSuspension() { + self_->EndAssertNoThreadSuspension(old_cause_); + } + Thread* Self() { + return self_; + } + + private: + Thread* const self_; + const char* old_cause_; +}; + std::ostream& operator<<(std::ostream& os, const Thread& thread); std::ostream& operator<<(std::ostream& os, const ThreadState& state); -- cgit v1.2.3