summaryrefslogtreecommitdiffstats
path: root/src/core/cpu_manager.h
diff options
context:
space:
mode:
authorLiam <byteslice@airmail.cc>2022-06-27 00:52:16 +0200
committerLiam <byteslice@airmail.cc>2022-07-15 04:47:18 +0200
commit0624c880bd5af45ae9095465e079fa55458515f6 (patch)
treea8b9f3adf516af30cad021fc32f8669426946cd5 /src/core/cpu_manager.h
parentMerge pull request #8540 from lat9nq/copy-nv-ffmpeg (diff)
downloadyuzu-0624c880bd5af45ae9095465e079fa55458515f6.tar
yuzu-0624c880bd5af45ae9095465e079fa55458515f6.tar.gz
yuzu-0624c880bd5af45ae9095465e079fa55458515f6.tar.bz2
yuzu-0624c880bd5af45ae9095465e079fa55458515f6.tar.lz
yuzu-0624c880bd5af45ae9095465e079fa55458515f6.tar.xz
yuzu-0624c880bd5af45ae9095465e079fa55458515f6.tar.zst
yuzu-0624c880bd5af45ae9095465e079fa55458515f6.zip
Diffstat (limited to '')
-rw-r--r--src/core/cpu_manager.h14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/core/cpu_manager.h b/src/core/cpu_manager.h
index 76dc58ee1..8143424af 100644
--- a/src/core/cpu_manager.h
+++ b/src/core/cpu_manager.h
@@ -5,6 +5,7 @@
#include <array>
#include <atomic>
+#include <csetjmp>
#include <functional>
#include <memory>
#include <thread>
@@ -47,10 +48,14 @@ public:
gpu_barrier->Sync();
}
+ void WaitForAndHandleInterrupt();
void Initialize();
void Shutdown();
- std::function<void()> GetGuestThreadStartFunc() {
+ std::function<void()> GetGuestActivateFunc() {
+ return [this] { GuestActivateFunction(); };
+ }
+ std::function<void()> GetGuestThreadFunc() {
return [this] { GuestThreadFunction(); };
}
std::function<void()> GetIdleThreadStartFunc() {
@@ -67,21 +72,22 @@ public:
}
private:
+ void GuestActivateFunction();
void GuestThreadFunction();
- void GuestRewindFunction();
void IdleThreadFunction();
void ShutdownThreadFunction();
+ void MultiCoreGuestActivate();
void MultiCoreRunGuestThread();
void MultiCoreRunGuestLoop();
- void MultiCoreRunIdleThread();
+ void SingleCoreGuestActivate();
void SingleCoreRunGuestThread();
void SingleCoreRunGuestLoop();
- void SingleCoreRunIdleThread();
static void ThreadStart(std::stop_token stop_token, CpuManager& cpu_manager, std::size_t core);
+ void HandleInterrupt();
void ShutdownThread();
void RunThread(std::size_t core);