mirror of
https://git.suyu.dev/suyu/suyu
synced 2024-11-01 21:07:52 +00:00
Merge pull request #2397 from lioncash/thread-unused
kernel/thread: Remove unused guest_handle member variable
This commit is contained in:
commit
83b830eb2f
3 changed files with 17 additions and 18 deletions
|
@ -40,9 +40,8 @@ void SetupMainThread(Process& owner_process, KernelCore& kernel, VAddr entry_poi
|
||||||
SharedPtr<Thread> thread = std::move(thread_res).Unwrap();
|
SharedPtr<Thread> thread = std::move(thread_res).Unwrap();
|
||||||
|
|
||||||
// Register 1 must be a handle to the main thread
|
// Register 1 must be a handle to the main thread
|
||||||
const Handle guest_handle = owner_process.GetHandleTable().Create(thread).Unwrap();
|
const Handle thread_handle = owner_process.GetHandleTable().Create(thread).Unwrap();
|
||||||
thread->SetGuestHandle(guest_handle);
|
thread->GetContext().cpu_registers[1] = thread_handle;
|
||||||
thread->GetContext().cpu_registers[1] = guest_handle;
|
|
||||||
|
|
||||||
// Threads by default are dormant, wake up the main thread so it runs when the scheduler fires
|
// Threads by default are dormant, wake up the main thread so it runs when the scheduler fires
|
||||||
thread->ResumeFromWait();
|
thread->ResumeFromWait();
|
||||||
|
|
|
@ -1380,20 +1380,22 @@ 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_guest_handle = current_process->GetHandleTable().Create(thread);
|
const auto new_thread_handle = current_process->GetHandleTable().Create(thread);
|
||||||
if (new_guest_handle.Failed()) {
|
if (new_thread_handle.Failed()) {
|
||||||
LOG_ERROR(Kernel_SVC, "Failed to create handle with error=0x{:X}",
|
LOG_ERROR(Kernel_SVC, "Failed to create handle with error=0x{:X}",
|
||||||
new_guest_handle.Code().raw);
|
new_thread_handle.Code().raw);
|
||||||
return new_guest_handle.Code();
|
return new_thread_handle.Code();
|
||||||
}
|
}
|
||||||
thread->SetGuestHandle(*new_guest_handle);
|
*out_handle = *new_thread_handle;
|
||||||
*out_handle = *new_guest_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();
|
||||||
|
|
||||||
|
|
|
@ -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";
|
||||||
}
|
}
|
||||||
|
@ -339,10 +344,6 @@ public:
|
||||||
arb_wait_address = address;
|
arb_wait_address = address;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetGuestHandle(Handle handle) {
|
|
||||||
guest_handle = handle;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool HasWakeupCallback() const {
|
bool HasWakeupCallback() const {
|
||||||
return wakeup_callback != nullptr;
|
return wakeup_callback != nullptr;
|
||||||
}
|
}
|
||||||
|
@ -436,9 +437,6 @@ private:
|
||||||
/// If waiting for an AddressArbiter, this is the address being waited on.
|
/// If waiting for an AddressArbiter, this is the address being waited on.
|
||||||
VAddr arb_wait_address{0};
|
VAddr arb_wait_address{0};
|
||||||
|
|
||||||
/// Handle used by guest emulated application to access this thread
|
|
||||||
Handle guest_handle = 0;
|
|
||||||
|
|
||||||
/// Handle used as userdata to reference this object when inserting into the CoreTiming queue.
|
/// Handle used as userdata to reference this object when inserting into the CoreTiming queue.
|
||||||
Handle callback_handle = 0;
|
Handle callback_handle = 0;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue