summaryrefslogtreecommitdiff
path: root/src/core/hle/kernel/thread.cpp
diff options
context:
space:
mode:
authorGravatar Fernando Sahmkow2020-03-07 18:59:42 -0400
committerGravatar Fernando Sahmkow2020-06-27 11:35:37 -0400
commitcd1c38be8d15d3caf52f566a9e8dc20504c61068 (patch)
tree2fed02ffd4f2151dfca14ddb33ef1939eaee2fba /src/core/hle/kernel/thread.cpp
parentSVC: WaitSynchronization add Termination Pending Result. (diff)
downloadyuzu-cd1c38be8d15d3caf52f566a9e8dc20504c61068.tar.gz
yuzu-cd1c38be8d15d3caf52f566a9e8dc20504c61068.tar.xz
yuzu-cd1c38be8d15d3caf52f566a9e8dc20504c61068.zip
ARM/Memory: Correct Exclusive Monitor and Implement Exclusive Memory Writes.
Diffstat (limited to 'src/core/hle/kernel/thread.cpp')
-rw-r--r--src/core/hle/kernel/thread.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/core/hle/kernel/thread.cpp b/src/core/hle/kernel/thread.cpp
index b99e3b7a5..51cc5dcca 100644
--- a/src/core/hle/kernel/thread.cpp
+++ b/src/core/hle/kernel/thread.cpp
@@ -236,7 +236,7 @@ ResultVal<std::shared_ptr<Thread>> Thread::Create(Core::System& system, ThreadTy
236 ResetThreadContext64(thread->context_64, stack_top, entry_point, arg); 236 ResetThreadContext64(thread->context_64, stack_top, entry_point, arg);
237 } 237 }
238 thread->host_context = 238 thread->host_context =
239 std::make_shared<Common::Fiber>(std::move(thread_start_func), thread_start_parameter); 239 std::make_shared<Common::Fiber>(std::move(thread_start_func), thread_start_parameter);
240 240
241 return MakeResult<std::shared_ptr<Thread>>(std::move(thread)); 241 return MakeResult<std::shared_ptr<Thread>>(std::move(thread));
242} 242}
@@ -412,12 +412,12 @@ ResultCode Thread::SetActivity(ThreadActivity value) {
412 } 412 }
413 413
414 if (value == ThreadActivity::Paused) { 414 if (value == ThreadActivity::Paused) {
415 if (pausing_state & static_cast<u32>(ThreadSchedFlags::ThreadPauseFlag) != 0) { 415 if ((pausing_state & static_cast<u32>(ThreadSchedFlags::ThreadPauseFlag)) != 0) {
416 return ERR_INVALID_STATE; 416 return ERR_INVALID_STATE;
417 } 417 }
418 AddSchedulingFlag(ThreadSchedFlags::ThreadPauseFlag); 418 AddSchedulingFlag(ThreadSchedFlags::ThreadPauseFlag);
419 } else { 419 } else {
420 if (pausing_state & static_cast<u32>(ThreadSchedFlags::ThreadPauseFlag) == 0) { 420 if ((pausing_state & static_cast<u32>(ThreadSchedFlags::ThreadPauseFlag)) == 0) {
421 return ERR_INVALID_STATE; 421 return ERR_INVALID_STATE;
422 } 422 }
423 RemoveSchedulingFlag(ThreadSchedFlags::ThreadPauseFlag); 423 RemoveSchedulingFlag(ThreadSchedFlags::ThreadPauseFlag);