mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-09 08:21:29 +12:00
Atomic waiting refactoring (#9208)
* Use atomic waitables instead instead of global thread wait as often as possible. * Add ::is_stopped() and and ::is_paued() which can be used in atomic loops and with atomic wait. (constexpr cpu flags test functions) * Fix notification bug of sys_spu_thread_group_exit/terminate. (old bug, enhanced by #9117) * Function time statistics at Emu.Stop() restored. (instead of current "X syscall failed with 0x00000000 : 0")
This commit is contained in:
parent
cf384795d2
commit
f43260bd58
40 changed files with 375 additions and 234 deletions
|
@ -161,7 +161,7 @@ debugger_frame::debugger_frame(std::shared_ptr<gui_settings> settings, QWidget *
|
|||
// Notify only if no pause flags are set after this change
|
||||
if (!(old & s_pause_flags))
|
||||
{
|
||||
cpu->notify();
|
||||
cpu->state.notify_one(s_pause_flags);
|
||||
}
|
||||
}
|
||||
UpdateUI();
|
||||
|
@ -852,7 +852,7 @@ void debugger_frame::DoStep(bool stepOver)
|
|||
if (!should_step_over) state += cpu_flag::dbg_step;
|
||||
});
|
||||
|
||||
cpu->notify();
|
||||
cpu->state.notify_one(s_pause_flags);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue