summaryrefslogtreecommitdiffstats
path: root/src/core/hle/kernel/thread.cpp
diff options
context:
space:
mode:
authorFernando Sahmkow <fsahmkow27@gmail.com>2020-02-25 21:38:33 +0100
committerFernando Sahmkow <fsahmkow27@gmail.com>2020-06-27 17:35:13 +0200
commit3b5b950c895a2db217a3e5c8105cec4498a2534e (patch)
tree2a8e054af30c9aa8039f8faa4b993e2290642184 /src/core/hle/kernel/thread.cpp
parentSVC: Remove global HLE Lock. (diff)
downloadyuzu-3b5b950c895a2db217a3e5c8105cec4498a2534e.tar
yuzu-3b5b950c895a2db217a3e5c8105cec4498a2534e.tar.gz
yuzu-3b5b950c895a2db217a3e5c8105cec4498a2534e.tar.bz2
yuzu-3b5b950c895a2db217a3e5c8105cec4498a2534e.tar.lz
yuzu-3b5b950c895a2db217a3e5c8105cec4498a2534e.tar.xz
yuzu-3b5b950c895a2db217a3e5c8105cec4498a2534e.tar.zst
yuzu-3b5b950c895a2db217a3e5c8105cec4498a2534e.zip
Diffstat (limited to 'src/core/hle/kernel/thread.cpp')
-rw-r--r--src/core/hle/kernel/thread.cpp14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/core/hle/kernel/thread.cpp b/src/core/hle/kernel/thread.cpp
index e6bb7c666..5fef3945b 100644
--- a/src/core/hle/kernel/thread.cpp
+++ b/src/core/hle/kernel/thread.cpp
@@ -139,12 +139,13 @@ ResultCode Thread::Start() {
}
void Thread::CancelWait() {
+ SchedulerLock lock(kernel);
if (GetSchedulingStatus() != ThreadSchedStatus::Paused) {
is_sync_cancelled = true;
return;
}
is_sync_cancelled = false;
- SetWaitSynchronizationResult(ERR_SYNCHRONIZATION_CANCELED);
+ SetSynchronizationResults(nullptr, ERR_SYNCHRONIZATION_CANCELED);
ResumeFromWait();
}
@@ -258,13 +259,16 @@ void Thread::SetPriority(u32 priority) {
}
void Thread::SetWaitSynchronizationResult(ResultCode result) {
- context_32.cpu_registers[0] = result.raw;
- context_64.cpu_registers[0] = result.raw;
+ UNREACHABLE();
}
void Thread::SetWaitSynchronizationOutput(s32 output) {
- context_32.cpu_registers[1] = output;
- context_64.cpu_registers[1] = output;
+ UNREACHABLE();
+}
+
+void Thread::SetSynchronizationResults(SynchronizationObject* object, ResultCode result) {
+ signaling_object = object;
+ signaling_result = result;
}
s32 Thread::GetSynchronizationObjectIndex(std::shared_ptr<SynchronizationObject> object) const {