From 6baebc3d41c41fd38bbbbcd22e5739c5ed56de82 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Sun, 14 Apr 2019 06:06:04 -0400 Subject: kernel/thread: Remove unused guest_handle member variable This member variable is entirely unused. It was only set but never actually utilized. Given that, we can remove it to get rid of noise in the thread interface. --- src/core/hle/kernel/svc.cpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'src/core/hle/kernel/svc.cpp') diff --git a/src/core/hle/kernel/svc.cpp b/src/core/hle/kernel/svc.cpp index e5d4d6b553..f57677636d 100644 --- a/src/core/hle/kernel/svc.cpp +++ b/src/core/hle/kernel/svc.cpp @@ -1250,14 +1250,13 @@ static ResultCode CreateThread(Core::System& system, Handle* out_handle, VAddr e Thread::Create(kernel, name, entry_point, priority, arg, processor_id, stack_top, *current_process)); - const auto new_guest_handle = current_process->GetHandleTable().Create(thread); - if (new_guest_handle.Failed()) { + const auto new_thread_handle = current_process->GetHandleTable().Create(thread); + if (new_thread_handle.Failed()) { LOG_ERROR(Kernel_SVC, "Failed to create handle with error=0x{:X}", - new_guest_handle.Code().raw); - return new_guest_handle.Code(); + new_thread_handle.Code().raw); + return new_thread_handle.Code(); } - thread->SetGuestHandle(*new_guest_handle); - *out_handle = *new_guest_handle; + *out_handle = *new_thread_handle; system.CpuCore(thread->GetProcessorID()).PrepareReschedule(); -- cgit v1.2.3 From 4902eb4d01c69987b26afe7f135a256068fcd7d7 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Mon, 15 Apr 2019 15:54:25 -0400 Subject: svc: Specify handle value in thread's name Allows the handle to be seen alongside the entry point. --- src/core/hle/kernel/svc.cpp | 7 +++++-- src/core/hle/kernel/thread.h | 5 +++++ 2 files changed, 10 insertions(+), 2 deletions(-) (limited to 'src/core/hle/kernel/svc.cpp') diff --git a/src/core/hle/kernel/svc.cpp b/src/core/hle/kernel/svc.cpp index f57677636d..58d33bb8e3 100644 --- a/src/core/hle/kernel/svc.cpp +++ b/src/core/hle/kernel/svc.cpp @@ -1244,10 +1244,9 @@ static ResultCode CreateThread(Core::System& system, Handle* out_handle, VAddr e return ERR_INVALID_THREAD_PRIORITY; } - const std::string name = fmt::format("thread-{:X}", entry_point); auto& kernel = system.Kernel(); CASCADE_RESULT(SharedPtr 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)); 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; + // 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(); return RESULT_SUCCESS; diff --git a/src/core/hle/kernel/thread.h b/src/core/hle/kernel/thread.h index e14b84a81c..31d48325dd 100644 --- a/src/core/hle/kernel/thread.h +++ b/src/core/hle/kernel/thread.h @@ -102,6 +102,11 @@ public: std::string GetName() const override { return name; } + + void SetName(std::string new_name) { + name = std::move(new_name); + } + std::string GetTypeName() const override { return "Thread"; } -- cgit v1.2.3