Kernel: Change WaitObject to Synchronization object. In order to better reflect RE.
This commit is contained in:
parent
84ea9c2b42
commit
c5aefe42aa
22 changed files with 110 additions and 98 deletions
|
@ -11,7 +11,7 @@
|
|||
#include "common/common_types.h"
|
||||
#include "core/arm/arm_interface.h"
|
||||
#include "core/hle/kernel/object.h"
|
||||
#include "core/hle/kernel/wait_object.h"
|
||||
#include "core/hle/kernel/synchronization_object.h"
|
||||
#include "core/hle/result.h"
|
||||
|
||||
namespace Kernel {
|
||||
|
@ -95,7 +95,7 @@ enum class ThreadSchedMasks : u32 {
|
|||
ForcePauseMask = 0x0070,
|
||||
};
|
||||
|
||||
class Thread final : public WaitObject {
|
||||
class Thread final : public SynchronizationObject {
|
||||
public:
|
||||
explicit Thread(KernelCore& kernel);
|
||||
~Thread() override;
|
||||
|
@ -104,11 +104,11 @@ public:
|
|||
|
||||
using ThreadContext = Core::ARM_Interface::ThreadContext;
|
||||
|
||||
using ThreadWaitObjects = std::vector<std::shared_ptr<WaitObject>>;
|
||||
using ThreadSynchronizationObjects = std::vector<std::shared_ptr<SynchronizationObject>>;
|
||||
|
||||
using WakeupCallback =
|
||||
std::function<bool(ThreadWakeupReason reason, std::shared_ptr<Thread> thread,
|
||||
std::shared_ptr<WaitObject> object, std::size_t index)>;
|
||||
std::shared_ptr<SynchronizationObject> object, std::size_t index)>;
|
||||
|
||||
/**
|
||||
* Creates and returns a new thread. The new thread is immediately scheduled
|
||||
|
@ -233,7 +233,7 @@ public:
|
|||
*
|
||||
* @param object Object to query the index of.
|
||||
*/
|
||||
s32 GetWaitObjectIndex(std::shared_ptr<WaitObject> object) const;
|
||||
s32 GetSynchronizationObjectIndex(std::shared_ptr<SynchronizationObject> object) const;
|
||||
|
||||
/**
|
||||
* Stops a thread, invalidating it from further use
|
||||
|
@ -314,15 +314,15 @@ public:
|
|||
return owner_process;
|
||||
}
|
||||
|
||||
const ThreadWaitObjects& GetWaitObjects() const {
|
||||
const ThreadSynchronizationObjects& GetSynchronizationObjects() const {
|
||||
return wait_objects;
|
||||
}
|
||||
|
||||
void SetWaitObjects(ThreadWaitObjects objects) {
|
||||
void SetSynchronizationObjects(ThreadSynchronizationObjects objects) {
|
||||
wait_objects = std::move(objects);
|
||||
}
|
||||
|
||||
void ClearWaitObjects() {
|
||||
void ClearSynchronizationObjects() {
|
||||
for (const auto& waiting_object : wait_objects) {
|
||||
waiting_object->RemoveWaitingThread(SharedFrom(this));
|
||||
}
|
||||
|
@ -330,7 +330,7 @@ public:
|
|||
}
|
||||
|
||||
/// Determines whether all the objects this thread is waiting on are ready.
|
||||
bool AllWaitObjectsReady() const;
|
||||
bool AllSynchronizationObjectsReady() const;
|
||||
|
||||
const MutexWaitingThreads& GetMutexWaitingThreads() const {
|
||||
return wait_mutex_threads;
|
||||
|
@ -395,7 +395,7 @@ public:
|
|||
* will cause an assertion to trigger.
|
||||
*/
|
||||
bool InvokeWakeupCallback(ThreadWakeupReason reason, std::shared_ptr<Thread> thread,
|
||||
std::shared_ptr<WaitObject> object, std::size_t index);
|
||||
std::shared_ptr<SynchronizationObject> object, std::size_t index);
|
||||
|
||||
u32 GetIdealCore() const {
|
||||
return ideal_core;
|
||||
|
@ -494,7 +494,7 @@ private:
|
|||
|
||||
/// Objects that the thread is waiting on, in the same order as they were
|
||||
/// passed to WaitSynchronization.
|
||||
ThreadWaitObjects wait_objects;
|
||||
ThreadSynchronizationObjects wait_objects;
|
||||
|
||||
/// List of threads that are waiting for a mutex that is held by this thread.
|
||||
MutexWaitingThreads wait_mutex_threads;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue