summaryrefslogtreecommitdiff
path: root/src/core/hle/kernel/process.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/hle/kernel/process.h')
-rw-r--r--src/core/hle/kernel/process.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/core/hle/kernel/process.h b/src/core/hle/kernel/process.h
index c2df451f3..e2eda26b9 100644
--- a/src/core/hle/kernel/process.h
+++ b/src/core/hle/kernel/process.h
@@ -8,6 +8,7 @@
8#include <cstddef> 8#include <cstddef>
9#include <list> 9#include <list>
10#include <string> 10#include <string>
11#include <unordered_map>
11#include <vector> 12#include <vector>
12#include "common/common_types.h" 13#include "common/common_types.h"
13#include "core/hle/kernel/address_arbiter.h" 14#include "core/hle/kernel/address_arbiter.h"
@@ -232,6 +233,15 @@ public:
232 return thread_list; 233 return thread_list;
233 } 234 }
234 235
236 /// Insert a thread into the condition variable wait container
237 void InsertConditionVariableThread(SharedPtr<Thread> thread);
238
239 /// Remove a thread from the condition variable wait container
240 void RemoveConditionVariableThread(SharedPtr<Thread> thread);
241
242 /// Obtain all condition variable threads waiting for some address
243 std::vector<SharedPtr<Thread>> GetConditionVariableThreads(VAddr cond_var_addr);
244
235 /// Registers a thread as being created under this process, 245 /// Registers a thread as being created under this process,
236 /// adding it to this process' thread list. 246 /// adding it to this process' thread list.
237 void RegisterThread(const Thread* thread); 247 void RegisterThread(const Thread* thread);
@@ -375,6 +385,9 @@ private:
375 /// List of threads that are running with this process as their owner. 385 /// List of threads that are running with this process as their owner.
376 std::list<const Thread*> thread_list; 386 std::list<const Thread*> thread_list;
377 387
388 /// List of threads waiting for a condition variable
389 std::unordered_map<VAddr, std::list<SharedPtr<Thread>>> cond_var_threads;
390
378 /// System context 391 /// System context
379 Core::System& system; 392 Core::System& system;
380 393