diff options
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); |