2013-11-03 20:23:16 +01:00
|
|
|
#pragma once
|
2014-08-25 16:56:13 +02:00
|
|
|
|
2014-02-23 17:52:52 +01:00
|
|
|
class CPUThread;
|
2015-07-01 00:25:52 +02:00
|
|
|
class RawSPUThread;
|
2013-11-03 20:23:16 +01:00
|
|
|
|
2015-07-01 00:25:52 +02:00
|
|
|
class CPUThreadManager final
|
2013-11-03 20:23:16 +01:00
|
|
|
{
|
2015-03-04 22:51:14 +01:00
|
|
|
std::mutex m_mutex;
|
|
|
|
|
|
2015-07-01 00:25:52 +02:00
|
|
|
std::array<std::weak_ptr<RawSPUThread>, 5> m_raw_spu;
|
2013-11-03 20:23:16 +01:00
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
CPUThreadManager();
|
|
|
|
|
~CPUThreadManager();
|
|
|
|
|
|
|
|
|
|
void Close();
|
|
|
|
|
|
2015-07-08 17:01:59 +02:00
|
|
|
static std::vector<std::shared_ptr<CPUThread>> GetAllThreads();
|
2015-03-04 22:51:14 +01:00
|
|
|
|
2015-07-08 17:01:59 +02:00
|
|
|
static void Exec();
|
2015-03-04 22:51:14 +01:00
|
|
|
|
2015-07-01 00:25:52 +02:00
|
|
|
std::shared_ptr<RawSPUThread> NewRawSPUThread();
|
2013-11-03 20:23:16 +01:00
|
|
|
|
2015-07-01 00:25:52 +02:00
|
|
|
std::shared_ptr<RawSPUThread> GetRawSPUThread(u32 index);
|
2014-02-23 17:52:52 +01:00
|
|
|
};
|