summaryrefslogtreecommitdiff
path: root/runtime/base/mutex.h
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/base/mutex.h')
-rw-r--r--runtime/base/mutex.h16
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);
};