diff options
author | Yuri Kunde Schlesner <yuriks@yuriks.net> | 2015-01-31 22:22:40 +0100 |
---|---|---|
committer | Yuri Kunde Schlesner <yuriks@yuriks.net> | 2015-02-02 18:37:06 +0100 |
commit | 4e84df8be30c5bac65e4c4e9faf07bf0fc3fb33a (patch) | |
tree | 4e5ea0a4d5525843f41ad19530da872bc5ccda25 /src/core/hle/kernel/thread.h | |
parent | HID: Fix crash when pressing a key when the emulator is stopped (diff) | |
download | yuzu-4e84df8be30c5bac65e4c4e9faf07bf0fc3fb33a.tar yuzu-4e84df8be30c5bac65e4c4e9faf07bf0fc3fb33a.tar.gz yuzu-4e84df8be30c5bac65e4c4e9faf07bf0fc3fb33a.tar.bz2 yuzu-4e84df8be30c5bac65e4c4e9faf07bf0fc3fb33a.tar.lz yuzu-4e84df8be30c5bac65e4c4e9faf07bf0fc3fb33a.tar.xz yuzu-4e84df8be30c5bac65e4c4e9faf07bf0fc3fb33a.tar.zst yuzu-4e84df8be30c5bac65e4c4e9faf07bf0fc3fb33a.zip |
Diffstat (limited to 'src/core/hle/kernel/thread.h')
-rw-r--r-- | src/core/hle/kernel/thread.h | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/core/hle/kernel/thread.h b/src/core/hle/kernel/thread.h index 9a4a00fe8..f29897ae8 100644 --- a/src/core/hle/kernel/thread.h +++ b/src/core/hle/kernel/thread.h @@ -7,6 +7,8 @@ #include <string> #include <vector> +#include <boost/container/flat_set.hpp> + #include "common/common_types.h" #include "core/core.h" @@ -40,6 +42,8 @@ enum ThreadStatus { namespace Kernel { +class Mutex; + class Thread final : public WaitObject { public: static ResultVal<SharedPtr<Thread>> Create(std::string name, VAddr entry_point, s32 priority, @@ -109,8 +113,10 @@ public: s32 processor_id; - std::vector<SharedPtr<WaitObject>> wait_objects; ///< Objects that the thread is waiting on + /// Mutexes currently held by this thread, which will be released when it exits. + boost::container::flat_set<SharedPtr<Mutex>> held_mutexes; + std::vector<SharedPtr<WaitObject>> wait_objects; ///< Objects that the thread is waiting on VAddr wait_address; ///< If waiting on an AddressArbiter, this is the arbitration address bool wait_all; ///< True if the thread is waiting on all objects before resuming bool wait_set_output; ///< True if the output parameter should be set on thread wakeup @@ -121,7 +127,7 @@ public: bool idle = false; private: - Thread() = default; + Thread(); /// Handle used as userdata to reference this object when inserting into the CoreTiming queue. Handle callback_handle; |