From 0a905a0c33a1ae93174212b94dfdec946ebfaceb Mon Sep 17 00:00:00 2001 From: Frederico Linhares Date: Wed, 19 Oct 2022 11:36:27 -0300 Subject: feat Create workers --- src/core.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'src/core.cpp') diff --git a/src/core.cpp b/src/core.cpp index 1efaedc..3a78af2 100644 --- a/src/core.cpp +++ b/src/core.cpp @@ -68,6 +68,22 @@ vk_debug_callback( } #endif +void +load_threads(void *obj) +{ + auto num_threads{std::thread::hardware_concurrency() - 1}; + for(auto i{0}; i < num_threads; i++) + cg_core.threads.emplace_back( + cg_core.workers.emplace_back(&cg_core.job_queue)); +} + +void +unload_threads(void *obj) +{ + cg_core.job_queue.stop(); + for(auto &t: cg_core.threads) t.join(); +} + void load_mruby_symbols(void *obj) { @@ -636,6 +652,7 @@ load_mruby_interface(void *obj) } const CommandChain cg_sCore::loader{ + {&load_threads, &unload_threads}, {&load_mruby_symbols, nullptr}, {&load_game, nullptr}, {&load_sdl, &unload_sdl}, -- cgit v1.2.3