1
0
Fork 0
forked from suyu/suyu

svc: Specify handle value in thread's name

Allows the handle to be seen alongside the entry point.
This commit is contained in:
Lioncash 2019-04-15 15:54:25 -04:00
parent 09caf8a756
commit 3283aa1e20
2 changed files with 10 additions and 2 deletions

View file

@ -1244,10 +1244,9 @@ static ResultCode CreateThread(Core::System& system, Handle* out_handle, VAddr e
return ERR_INVALID_THREAD_PRIORITY; return ERR_INVALID_THREAD_PRIORITY;
} }
const std::string name = fmt::format("thread-{:X}", entry_point);
auto& kernel = system.Kernel(); auto& kernel = system.Kernel();
CASCADE_RESULT(SharedPtr<Thread> thread, CASCADE_RESULT(SharedPtr<Thread> thread,
Thread::Create(kernel, name, entry_point, priority, arg, processor_id, stack_top, Thread::Create(kernel, "", entry_point, priority, arg, processor_id, stack_top,
*current_process)); *current_process));
const auto new_thread_handle = current_process->GetHandleTable().Create(thread); const auto new_thread_handle = current_process->GetHandleTable().Create(thread);
@ -1258,6 +1257,10 @@ static ResultCode CreateThread(Core::System& system, Handle* out_handle, VAddr e
} }
*out_handle = *new_thread_handle; *out_handle = *new_thread_handle;
// Set the thread name for debugging purposes.
thread->SetName(
fmt::format("thread[entry_point={:X}, handle={:X}]", entry_point, *new_thread_handle));
system.CpuCore(thread->GetProcessorID()).PrepareReschedule(); system.CpuCore(thread->GetProcessorID()).PrepareReschedule();
return RESULT_SUCCESS; return RESULT_SUCCESS;

View file

@ -102,6 +102,11 @@ public:
std::string GetName() const override { std::string GetName() const override {
return name; return name;
} }
void SetName(std::string new_name) {
name = std::move(new_name);
}
std::string GetTypeName() const override { std::string GetTypeName() const override {
return "Thread"; return "Thread";
} }