#pragma once class CPUThread; enum CPUThreadType : unsigned char; class CPUThreadManager { ArrayF m_threads; std::mutex m_mtx_thread; wxSemaphore m_sem_task; Stack m_delete_threads; u32 m_raw_spu_num; public: CPUThreadManager(); ~CPUThreadManager(); void Close(); CPUThread& AddThread(CPUThreadType type); void RemoveThread(const u32 id); ArrayF& GetThreads() { return m_threads; } s32 GetThreadNumById(CPUThreadType type, u32 id); CPUThread* GetThread(u32 id); void Exec(); void Task(); };