1
0
Fork 0

Kernel/Thread: Run the main thread in the CPU specified by the process' exheader.

System services usually have Core1 in this field, but citra was running them in Core0 regardless.
This commit is contained in:
Subv 2017-11-06 13:14:12 -05:00
parent d55a13c35d
commit 980df62397
1 changed files with 4 additions and 3 deletions

View File

@ -497,8 +497,9 @@ void Thread::BoostPriority(u32 priority) {
SharedPtr<Thread> SetupMainThread(u32 entry_point, u32 priority, SharedPtr<Process> owner_process) { SharedPtr<Thread> SetupMainThread(u32 entry_point, u32 priority, SharedPtr<Process> owner_process) {
// Initialize new "main" thread // Initialize new "main" thread
auto thread_res = Thread::Create("main", entry_point, priority, 0, THREADPROCESSORID_0, auto thread_res =
Memory::HEAP_VADDR_END, owner_process); Thread::Create("main", entry_point, priority, 0, owner_process->ideal_processor,
Memory::HEAP_VADDR_END, owner_process);
SharedPtr<Thread> thread = std::move(thread_res).Unwrap(); SharedPtr<Thread> thread = std::move(thread_res).Unwrap();
@ -571,4 +572,4 @@ const std::vector<SharedPtr<Thread>>& GetThreadList() {
return thread_list; return thread_list;
} }
} // namespace } // namespace Kernel