mirror of
https://github.com/RPCS3/rpcs3.git
synced 2026-04-19 05:15:11 +00:00
SaveStates: Fix Gem Thread Reboot
This commit is contained in:
parent
a5b5ac1ed5
commit
f3f6186a75
6 changed files with 28 additions and 6 deletions
|
|
@ -106,6 +106,11 @@ thread_local u64 g_tls_wait_fail = 0;
|
|||
thread_local bool g_tls_access_violation_recovered = false;
|
||||
extern thread_local std::string(*g_tls_log_prefix)();
|
||||
|
||||
namespace stx
|
||||
{
|
||||
atomic_t<u32> g_launch_retainer{0};
|
||||
}
|
||||
|
||||
// Report error and call std::abort(), defined in main.cpp
|
||||
[[noreturn]] void report_fatal_error(std::string_view text, bool is_html = false, bool include_help_text = true);
|
||||
|
||||
|
|
|
|||
|
|
@ -465,6 +465,8 @@ public:
|
|||
namespace stx
|
||||
{
|
||||
struct launch_retainer;
|
||||
|
||||
extern atomic_t<u32> g_launch_retainer;
|
||||
}
|
||||
|
||||
// Derived from the callable object Context, possibly a lambda
|
||||
|
|
@ -481,6 +483,11 @@ class named_thread final : public Context, result_storage<Context>, thread_base
|
|||
|
||||
u64 entry_point2()
|
||||
{
|
||||
while (u32 value = stx::g_launch_retainer)
|
||||
{
|
||||
stx::g_launch_retainer.wait(value);
|
||||
}
|
||||
|
||||
thread::initialize([]()
|
||||
{
|
||||
if constexpr (!result::empty)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue