summaryrefslogtreecommitdiffstats
path: root/src/core/hle/kernel
diff options
context:
space:
mode:
authorSubv <subv2112@gmail.com>2016-12-14 18:13:02 +0100
committerSubv <subv2112@gmail.com>2016-12-14 18:35:01 +0100
commit5b1edc6ae70972d4a11eee1f1ff8fdff2122b5a2 (patch)
treeb6fbcc194effc5e05a608ebde0ea3c887720d920 /src/core/hle/kernel
parentProperly remove a thread from its wait_objects' waitlist when it is awoken by a timeout. (diff)
downloadyuzu-5b1edc6ae70972d4a11eee1f1ff8fdff2122b5a2.tar
yuzu-5b1edc6ae70972d4a11eee1f1ff8fdff2122b5a2.tar.gz
yuzu-5b1edc6ae70972d4a11eee1f1ff8fdff2122b5a2.tar.bz2
yuzu-5b1edc6ae70972d4a11eee1f1ff8fdff2122b5a2.tar.lz
yuzu-5b1edc6ae70972d4a11eee1f1ff8fdff2122b5a2.tar.xz
yuzu-5b1edc6ae70972d4a11eee1f1ff8fdff2122b5a2.tar.zst
yuzu-5b1edc6ae70972d4a11eee1f1ff8fdff2122b5a2.zip
Diffstat (limited to 'src/core/hle/kernel')
-rw-r--r--src/core/hle/kernel/kernel.cpp9
-rw-r--r--src/core/hle/kernel/thread.h10
2 files changed, 11 insertions, 8 deletions
diff --git a/src/core/hle/kernel/kernel.cpp b/src/core/hle/kernel/kernel.cpp
index 2ddeffcdd..209d35270 100644
--- a/src/core/hle/kernel/kernel.cpp
+++ b/src/core/hle/kernel/kernel.cpp
@@ -50,9 +50,9 @@ SharedPtr<Thread> WaitObject::GetHighestPriorityReadyThread() {
if (thread->current_priority >= candidate_priority)
continue;
- bool ready_to_run = std::none_of(thread->wait_objects.begin(), thread->wait_objects.end(), [](const SharedPtr<WaitObject>& object) {
- return object->ShouldWait();
- });
+ bool ready_to_run =
+ std::none_of(thread->wait_objects.begin(), thread->wait_objects.end(),
+ [](const SharedPtr<WaitObject>& object) { return object->ShouldWait(); });
if (ready_to_run) {
candidate = thread.get();
candidate_priority = thread->current_priority;
@@ -83,7 +83,8 @@ void WaitObject::WakeupAllWaitingThreads() {
thread->SetWaitSynchronizationResult(RESULT_SUCCESS);
thread->ResumeFromWait();
- // Note: Removing the thread from the object's waitlist will be done by GetHighestPriorityReadyThread
+ // Note: Removing the thread from the object's waitlist will be
+ // done by GetHighestPriorityReadyThread.
}
}
diff --git a/src/core/hle/kernel/thread.h b/src/core/hle/kernel/thread.h
index 4c254cb9d..238359fc5 100644
--- a/src/core/hle/kernel/thread.h
+++ b/src/core/hle/kernel/thread.h
@@ -178,17 +178,19 @@ public:
/// Mutexes currently held by this thread, which will be released when it exits.
boost::container::flat_set<SharedPtr<Mutex>> held_mutexes;
- SharedPtr<Process> owner_process; ///< Process that owns this thread
+ SharedPtr<Process> owner_process; ///< Process that owns this thread
/// Objects that the thread is waiting on.
/// This is only populated when the thread should wait for all the objects to become ready.
std::vector<SharedPtr<WaitObject>> wait_objects;
- boost::container::flat_map<int, s32> wait_objects_index; ///< Mapping of Object ids to their position in the last waitlist that this object waited on.
+ /// Mapping of Object ids to their position in the last waitlist that this object waited on.
+ boost::container::flat_map<int, s32> wait_objects_index;
- VAddr wait_address; ///< If waiting on an AddressArbiter, this is the arbitration address
+ VAddr wait_address; ///< If waiting on an AddressArbiter, this is the arbitration address
- bool wait_set_output; ///< True if the WaitSynchronizationN output parameter should be set on thread wakeup
+ /// True if the WaitSynchronizationN output parameter should be set on thread wakeup.
+ bool wait_set_output;
std::string name;