summaryrefslogtreecommitdiffstats
path: root/src/core/hle/kernel/thread.cpp
diff options
context:
space:
mode:
authorFernando Sahmkow <fsahmkow27@gmail.com>2020-02-25 18:22:11 +0100
committerFernando Sahmkow <fsahmkow27@gmail.com>2020-06-27 17:35:12 +0200
commit589f9cf108d306e8265ff4856b522cd32fbc121f (patch)
treed9e78acb03901cdbbc3f7649b03048f7cd946f06 /src/core/hle/kernel/thread.cpp
parentSVC: Correct CreateThread, StartThread, ExitThread, SleepThread. (diff)
downloadyuzu-589f9cf108d306e8265ff4856b522cd32fbc121f.tar
yuzu-589f9cf108d306e8265ff4856b522cd32fbc121f.tar.gz
yuzu-589f9cf108d306e8265ff4856b522cd32fbc121f.tar.bz2
yuzu-589f9cf108d306e8265ff4856b522cd32fbc121f.tar.lz
yuzu-589f9cf108d306e8265ff4856b522cd32fbc121f.tar.xz
yuzu-589f9cf108d306e8265ff4856b522cd32fbc121f.tar.zst
yuzu-589f9cf108d306e8265ff4856b522cd32fbc121f.zip
Diffstat (limited to 'src/core/hle/kernel/thread.cpp')
-rw-r--r--src/core/hle/kernel/thread.cpp6
1 files changed, 2 insertions, 4 deletions
diff --git a/src/core/hle/kernel/thread.cpp b/src/core/hle/kernel/thread.cpp
index d9e610272..e6bb7c666 100644
--- a/src/core/hle/kernel/thread.cpp
+++ b/src/core/hle/kernel/thread.cpp
@@ -250,6 +250,7 @@ ResultVal<std::shared_ptr<Thread>> Thread::Create(Core::System& system, ThreadTy
}
void Thread::SetPriority(u32 priority) {
+ SchedulerLock lock(kernel);
ASSERT_MSG(priority <= THREADPRIO_LOWEST && priority >= THREADPRIO_HIGHEST,
"Invalid priority value.");
nominal_priority = priority;
@@ -383,10 +384,6 @@ void Thread::UpdatePriority() {
lock_owner->UpdatePriority();
}
-void Thread::ChangeCore(u32 core, u64 mask) {
- SetCoreAndAffinityMask(core, mask);
-}
-
bool Thread::AllSynchronizationObjectsReady() const {
return std::none_of(wait_objects.begin(), wait_objects.end(),
[this](const std::shared_ptr<SynchronizationObject>& object) {
@@ -467,6 +464,7 @@ void Thread::SetCurrentPriority(u32 new_priority) {
}
ResultCode Thread::SetCoreAndAffinityMask(s32 new_core, u64 new_affinity_mask) {
+ SchedulerLock lock(kernel);
const auto HighestSetCore = [](u64 mask, u32 max_cores) {
for (s32 core = static_cast<s32>(max_cores - 1); core >= 0; core--) {
if (((mask >> core) & 1) != 0) {