mirror of
https://github.com/dart-lang/sdk
synced 2024-10-14 14:53:37 +00:00
Added task kind field to thread JSON output.
BUG= R=johnmccutchan@google.com Review-Url: https://codereview.chromium.org/2565253004 .
This commit is contained in:
parent
66182e5881
commit
9f8a85c19b
|
@ -213,6 +213,7 @@ void Thread::PrintJSON(JSONStream* stream) const {
|
|||
jsobj.AddProperty("type", "_Thread");
|
||||
jsobj.AddPropertyF("id", "threads/%" Pd "",
|
||||
OSThread::ThreadIdToIntPtr(os_thread()->trace_id()));
|
||||
jsobj.AddProperty("kind", TaskKindToCString(task_kind()));
|
||||
Zone* zone = zone_;
|
||||
{
|
||||
JSONArray zone_info_array(&jsobj, "zones");
|
||||
|
@ -266,6 +267,27 @@ void Thread::clear_sticky_error() {
|
|||
}
|
||||
|
||||
|
||||
const char* Thread::TaskKindToCString(TaskKind kind) {
|
||||
switch (kind) {
|
||||
case kUnknownTask:
|
||||
return "kUnknownTask";
|
||||
case kMutatorTask:
|
||||
return "kMutatorTask";
|
||||
case kCompilerTask:
|
||||
return "kCompilerTask";
|
||||
case kSweeperTask:
|
||||
return "kSweeperTask";
|
||||
case kMarkerTask:
|
||||
return "kMarkerTask";
|
||||
case kFinalizerTask:
|
||||
return "kFinalizerTask";
|
||||
default:
|
||||
UNREACHABLE();
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
bool Thread::EnterIsolate(Isolate* isolate) {
|
||||
const bool kIsMutatorThread = true;
|
||||
Thread* thread = isolate->ScheduleThread(kIsMutatorThread);
|
||||
|
|
|
@ -161,6 +161,9 @@ class Thread : public BaseThread {
|
|||
kMarkerTask = 0x8,
|
||||
kFinalizerTask = 0x10,
|
||||
};
|
||||
// Converts a TaskKind to its corresponding C-String name.
|
||||
static const char* TaskKindToCString(TaskKind kind);
|
||||
|
||||
~Thread();
|
||||
|
||||
// The currently executing thread, or NULL if not yet initialized.
|
||||
|
|
|
@ -343,11 +343,14 @@ TEST_CASE(ManySimpleTasksWithZones) {
|
|||
}
|
||||
|
||||
// Check the thread exists and is the correct size.
|
||||
char* thread_info_buf = OS::SCreate(
|
||||
current_zone,
|
||||
"\"type\":\"_Thread\","
|
||||
"\"id\":\"threads\\/%" Pd "",
|
||||
OSThread::ThreadIdToIntPtr(thread->os_thread()->trace_id()));
|
||||
char* thread_info_buf =
|
||||
OS::SCreate(current_zone,
|
||||
"\"type\":\"_Thread\","
|
||||
"\"id\":\"threads\\/%" Pd
|
||||
"\","
|
||||
"\"kind\":\"%s\"",
|
||||
OSThread::ThreadIdToIntPtr(thread->os_thread()->trace_id()),
|
||||
Thread::TaskKindToCString(thread->task_kind()));
|
||||
|
||||
EXPECT_SUBSTRING(thread_info_buf, json);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue