Optimize thread scheduling and pausing

This commit is contained in:
momo5502
2025-06-07 14:20:19 +02:00
parent cb9fadde12
commit f3b20da9cc
2 changed files with 9 additions and 6 deletions

View File

@@ -101,11 +101,6 @@ namespace
{
c.win_emu->log.print(color::dark_gray, "Performing thread switch: %X -> %X\n", current_thread.id,
new_thread.id);
#ifdef OS_EMSCRIPTEN
debugger::event_context ec{.win_emu = *c.win_emu};
debugger::handle_events(ec);
#endif
}
void handle_module_load(const analysis_context& c, const mapped_module& mod)
@@ -122,6 +117,14 @@ namespace
{
auto& win_emu = *c.win_emu;
#ifdef OS_EMSCRIPTEN
if ((win_emu.get_executed_instructions() % 0x20000 == 0)
{
debugger::event_context ec{.win_emu = win_emu};
debugger::handle_events(ec);
}
#endif
const auto is_main_exe = win_emu.mod_manager.executable->is_within(address);
const auto is_previous_main_exe = win_emu.mod_manager.executable->is_within(c.win_emu->process.previous_ip);