Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(212)

Unified Diff: runtime/vm/thread_registry.cc

Issue 2554983002: Created methods to surface zone memory information for each isolate and thread in JSON. (Closed)
Patch Set: Created methods to surface zone memory information for each isolate and thread in JSON. Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: runtime/vm/thread_registry.cc
diff --git a/runtime/vm/thread_registry.cc b/runtime/vm/thread_registry.cc
index c660843c1eac3bd892de539293114b2dae1632c6..5f62350692da94f334c07e9d2bfea0f4d65f51b1 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,30 @@ void ThreadRegistry::PrepareForGC() {
}
+#ifndef RELEASE
+void ThreadRegistry::PrintToJSONObjectLocked(JSONObject* obj) {
+ MonitorLocker ml(threads_lock());
+ {
+ JSONArray active_thread_array(obj, "active_threads");
+ PrintToJSONObjectHelper(&active_thread_array, active_list_);
+ }
+ {
+ JSONArray free_thread_array(obj, "free_threads");
+ PrintToJSONObjectHelper(&free_thread_array, free_list_);
+ }
+}
+
+
+void ThreadRegistry::PrintToJSONObjectHelper(JSONArray* arr, Thread* thread) {
+ while (thread != NULL) {
+ JSONObject thread_obj(arr);
+ thread->PrintToJSONObject(&thread_obj);
+ thread = thread->next_;
+ }
+}
+#endif
+
+
void ThreadRegistry::AddToActiveListLocked(Thread* thread) {
ASSERT(thread != NULL);
ASSERT(threads_lock()->IsOwnedByCurrentThread());

Powered by Google App Engine
This is Rietveld 408576698