Index: runtime/vm/thread_registry.cc |
diff --git a/runtime/vm/thread_registry.cc b/runtime/vm/thread_registry.cc |
index eb39501bc0db930332b1975252287f3673306a72..447920edba9ed84a6587d6963bc7492826b37268 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; |
} |
+ |
+uint ThreadRegistry::ThreadHighWatermarksTotalLocked() const { |
+ ASSERT(threads_lock()->IsOwnedByCurrentThread()); |
+ uint memory_high_watermarks_total = 0; |
+ Thread* current = active_list_; |
+ while (current != NULL) { |
+ memory_high_watermarks_total += current->memory_high_watermark(); |
+ current = current->next_; |
+ } |
+ return memory_high_watermarks_total; |
+} |
+ |
} // namespace dart |