summaryrefslogtreecommitdiff
path: root/src/core/hle/svc.cpp
diff options
context:
space:
mode:
authorGravatar Subv2017-09-26 17:40:49 -0500
committerGravatar Subv2017-09-26 17:40:49 -0500
commit3165466b665185ecbc3e33b02b0b90e25e7248ba (patch)
tree1f644e47aafecb35c9b859b56e28658ef6ac26c9 /src/core/hle/svc.cpp
parentTests: Added Memory::IsValidVirtualAddress tests. (diff)
downloadyuzu-3165466b665185ecbc3e33b02b0b90e25e7248ba.tar.gz
yuzu-3165466b665185ecbc3e33b02b0b90e25e7248ba.tar.xz
yuzu-3165466b665185ecbc3e33b02b0b90e25e7248ba.zip
Kernel/Thread: Allow specifying which process a thread belongs to when creating it.
Don't automatically assume that Thread::Create will only be called when the parent process is currently scheduled. This assumption will be broken when applets or system modules are loaded.
Diffstat (limited to 'src/core/hle/svc.cpp')
-rw-r--r--src/core/hle/svc.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/core/hle/svc.cpp b/src/core/hle/svc.cpp
index dfc36748c..05c6897bf 100644
--- a/src/core/hle/svc.cpp
+++ b/src/core/hle/svc.cpp
@@ -656,8 +656,9 @@ static ResultCode CreateThread(Kernel::Handle* out_handle, u32 priority, u32 ent
656 "Newly created thread must run in the SysCore (Core1), unimplemented."); 656 "Newly created thread must run in the SysCore (Core1), unimplemented.");
657 } 657 }
658 658
659 CASCADE_RESULT(SharedPtr<Thread> thread, Kernel::Thread::Create(name, entry_point, priority, 659 CASCADE_RESULT(SharedPtr<Thread> thread,
660 arg, processor_id, stack_top)); 660 Kernel::Thread::Create(name, entry_point, priority, arg, processor_id, stack_top,
661 Kernel::g_current_process));
661 662
662 thread->context.fpscr = 663 thread->context.fpscr =
663 FPSCR_DEFAULT_NAN | FPSCR_FLUSH_TO_ZERO | FPSCR_ROUND_TOZERO; // 0x03C00000 664 FPSCR_DEFAULT_NAN | FPSCR_FLUSH_TO_ZERO | FPSCR_ROUND_TOZERO; // 0x03C00000