aboutsummaryrefslogtreecommitdiff
path: root/src/core/cpu_manager.h
diff options
context:
space:
mode:
authorLiam <byteslice@airmail.cc>2022-07-02 12:33:49 -0400
committerLiam <byteslice@airmail.cc>2022-07-02 12:33:49 -0400
commited0319cfed2c99e6366aaf725d96bb28a9332e4d (patch)
tree1598e6d320005e0d177106e28ebc6728234f1f24 /src/core/cpu_manager.h
parent603952bc27aca2e17d39def7710d9af36791f15c (diff)
common/fiber: make fibers easier to use
Diffstat (limited to 'src/core/cpu_manager.h')
-rw-r--r--src/core/cpu_manager.h21
1 files changed, 13 insertions, 8 deletions
diff --git a/src/core/cpu_manager.h b/src/core/cpu_manager.h
index f0751fc588..76dc58ee1e 100644
--- a/src/core/cpu_manager.h
+++ b/src/core/cpu_manager.h
@@ -50,10 +50,15 @@ public:
void Initialize();
void Shutdown();
- static std::function<void(void*)> GetGuestThreadStartFunc();
- static std::function<void(void*)> GetIdleThreadStartFunc();
- static std::function<void(void*)> GetShutdownThreadStartFunc();
- void* GetStartFuncParameter();
+ std::function<void()> GetGuestThreadStartFunc() {
+ return [this] { GuestThreadFunction(); };
+ }
+ std::function<void()> GetIdleThreadStartFunc() {
+ return [this] { IdleThreadFunction(); };
+ }
+ std::function<void()> GetShutdownThreadStartFunc() {
+ return [this] { ShutdownThreadFunction(); };
+ }
void PreemptSingleCore(bool from_running_enviroment = true);
@@ -62,10 +67,10 @@ public:
}
private:
- static void GuestThreadFunction(void* cpu_manager);
- static void GuestRewindFunction(void* cpu_manager);
- static void IdleThreadFunction(void* cpu_manager);
- static void ShutdownThreadFunction(void* cpu_manager);
+ void GuestThreadFunction();
+ void GuestRewindFunction();
+ void IdleThreadFunction();
+ void ShutdownThreadFunction();
void MultiCoreRunGuestThread();
void MultiCoreRunGuestLoop();