diff options
Diffstat (limited to 'runtime/base/mutex.h')
| -rw-r--r-- | runtime/base/mutex.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/runtime/base/mutex.h b/runtime/base/mutex.h index e4a7e1c9ec..8f2a8eac39 100644 --- a/runtime/base/mutex.h +++ b/runtime/base/mutex.h @@ -221,6 +221,18 @@ class LOCKABLE Mutex : public BaseMutex { void Dump(std::ostream& os) const override; + void DumpStack(Thread *self, uint64_t wait_start_ms, uint64_t try_times = 1); + + static bool IsDumpFrequent(Thread *self, uint64_t try_times = 1); + + void setEnableMonitorTimeout() { + enable_monitor_timeout_ = true; + } + + void setMonitorId(uint32_t monitorId) { + monitor_id_ = monitorId; + } + // For negative capabilities in clang annotations. const Mutex& operator!() const { return *this; } @@ -275,6 +287,10 @@ class LOCKABLE Mutex : public BaseMutex { unsigned int recursion_count_; const bool recursive_; // Can the lock be recursively held? + bool enable_monitor_timeout_ = false; + + uint32_t monitor_id_; + friend class ConditionVariable; DISALLOW_COPY_AND_ASSIGN(Mutex); }; |