kernel: Fix svcWaitSynch to always acquire requested wait objects.

This commit is contained in:
bunnei 2015-06-07 23:39:37 -04:00
parent f1ff0fbf07
commit 71e8822d23
9 changed files with 68 additions and 113 deletions

View file

@ -95,12 +95,6 @@ public:
*/
u32 GetThreadId() const { return thread_id; }
/**
* Release an acquired wait object
* @param wait_object WaitObject to release
*/
void ReleaseWaitObject(WaitObject* wait_object);
/**
* Resumes a thread from waiting
*/
@ -152,6 +146,8 @@ public:
s32 tls_index; ///< Index of the Thread Local Storage of the thread
bool waitsynch_waited; ///< Set to true if the last svcWaitSynch call caused the thread to wait
/// Mutexes currently held by this thread, which will be released when it exits.
boost::container::flat_set<SharedPtr<Mutex>> held_mutexes;
@ -163,12 +159,12 @@ public:
std::string name;
/// Handle used as userdata to reference this object when inserting into the CoreTiming queue.
Handle callback_handle;
private:
Thread();
~Thread() override;
/// Handle used as userdata to reference this object when inserting into the CoreTiming queue.
Handle callback_handle;
};
/**