Index: runtime/vm/thread_registry.cc |
diff --git a/runtime/vm/thread_registry.cc b/runtime/vm/thread_registry.cc |
index c660843c1eac3bd892de539293114b2dae1632c6..eb39501bc0db930332b1975252287f3673306a72 100644 |
--- a/runtime/vm/thread_registry.cc |
+++ b/runtime/vm/thread_registry.cc |
@@ -5,6 +5,7 @@ |
#include "vm/thread_registry.h" |
#include "vm/isolate.h" |
+#include "vm/json_stream.h" |
#include "vm/lockers.h" |
namespace dart { |
@@ -91,6 +92,19 @@ void ThreadRegistry::PrepareForGC() { |
} |
+#ifndef PRODUCT |
+void ThreadRegistry::PrintJSON(JSONStream* stream) const { |
+ MonitorLocker ml(threads_lock()); |
+ JSONArray threads(stream); |
+ Thread* current = active_list_; |
+ while (current != NULL) { |
+ threads.AddValue(current); |
+ current = current->next_; |
+ } |
+} |
+#endif |
+ |
+ |
void ThreadRegistry::AddToActiveListLocked(Thread* thread) { |
ASSERT(thread != NULL); |
ASSERT(threads_lock()->IsOwnedByCurrentThread()); |