Chromium Code Reviews| Index: runtime/vm/thread_registry.cc |
| diff --git a/runtime/vm/thread_registry.cc b/runtime/vm/thread_registry.cc |
| index c660843c1eac3bd892de539293114b2dae1632c6..ae856f4fca7a70078aaa6c84039916d001d5d4ae 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,24 @@ void ThreadRegistry::PrepareForGC() { |
| } |
| +#if defined(DEBUG) |
|
zra
2016/12/08 18:54:13
ditto
bkonyi
2016/12/08 20:58:32
Done.
|
| +void ThreadRegistry::PrintJSON(JSONStream* stream, bool ref) const { |
| + MonitorLocker ml(threads_lock()); |
| + JSONArray threads(stream); |
| + PrintJSONHelper(&threads, active_list_); |
| + PrintJSONHelper(&threads, free_list_); |
| +} |
| + |
| + |
| +void ThreadRegistry::PrintJSONHelper(JSONArray* array, Thread* thread) const { |
| + while (thread != NULL) { |
| + array->AddValue(thread); |
| + thread = thread->next_; |
| + } |
| +} |
| +#endif |
| + |
| + |
| void ThreadRegistry::AddToActiveListLocked(Thread* thread) { |
| ASSERT(thread != NULL); |
| ASSERT(threads_lock()->IsOwnedByCurrentThread()); |