Index: runtime/vm/thread_registry.cc |
diff --git a/runtime/vm/thread_registry.cc b/runtime/vm/thread_registry.cc |
index eb39501bc0db930332b1975252287f3673306a72..2e914cac6575a588ec9ac31b75041b752b2d4787 100644 |
--- a/runtime/vm/thread_registry.cc |
+++ b/runtime/vm/thread_registry.cc |
@@ -146,6 +146,7 @@ Thread* ThreadRegistry::GetFromFreelistLocked(Isolate* isolate) { |
return thread; |
} |
+ |
void ThreadRegistry::ReturnToFreelistLocked(Thread* thread) { |
ASSERT(thread != NULL); |
ASSERT(thread->os_thread_ == NULL); |
@@ -157,4 +158,16 @@ void ThreadRegistry::ReturnToFreelistLocked(Thread* thread) { |
free_list_ = thread; |
} |
+ |
+intptr_t ThreadRegistry::ThreadHighWatermarksTotalLocked() const { |
+ ASSERT(threads_lock()->IsOwnedByCurrentThread()); |
+ intptr_t max_memory_usage_total = 0; |
+ Thread* current = active_list_; |
+ while (current != NULL) { |
+ max_memory_usage_total += current->GetThreadHighWatermark(); |
+ current = current->next_; |
+ } |
+ return max_memory_usage_total; |
+} |
+ |
} // namespace dart |