diff options
author | Mathieu Chartier <mathieuc@google.com> | 2014-09-19 17:52:37 -0700 |
---|---|---|
committer | Mathieu Chartier <mathieuc@google.com> | 2014-09-19 18:57:47 -0700 |
commit | 2d5f39ed5aeaeb7ca22b07b4c6e8c56348ef8893 (patch) | |
tree | b0b9a8d4c386555f009b825bd5fbd8ab31909c3b /runtime/thread.h | |
parent | 24f4b816dd50793e8456dc60fe1b50856004d708 (diff) | |
download | art-2d5f39ed5aeaeb7ca22b07b4c6e8c56348ef8893.tar.gz art-2d5f39ed5aeaeb7ca22b07b4c6e8c56348ef8893.tar.bz2 art-2d5f39ed5aeaeb7ca22b07b4c6e8c56348ef8893.zip |
Add ScopedAssertNoThreadSuspension
Added a new class, ScopedAssertNoThreadSuspension.
Deleted some unnecessary ScopedAssertNoThreadSuspension since
VisitObjects already has a ScopedAssertNoThreadSuspension.
Change-Id: I29ec0006120c39a27184d30e2d1d0c179e203776
Diffstat (limited to 'runtime/thread.h')
-rw-r--r-- | runtime/thread.h | 17 |
1 files changed, 17 insertions, 0 deletions
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); |