mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-09 16:31:28 +12:00
Linux fixes
This commit is contained in:
parent
1d0f2c16e0
commit
056f93f3e4
7 changed files with 48 additions and 25 deletions
|
@ -1,6 +1,8 @@
|
|||
#include "stdafx.h"
|
||||
#include "Utilities/Log.h"
|
||||
#include "Emu/Memory/Memory.h"
|
||||
#include "Emu/System.h"
|
||||
#include "Emu/SysCalls/Callback.h"
|
||||
|
||||
#include "Emu/Cell/RawSPUThread.h"
|
||||
|
||||
|
@ -137,8 +139,14 @@ bool RawSPUThread::Write32(const u64 addr, const u32 value)
|
|||
{
|
||||
if (value == SPU_RUNCNTL_RUNNABLE)
|
||||
{
|
||||
SPU.Status.SetValue(SPU_STATUS_RUNNING);
|
||||
Exec();
|
||||
// calling Exec() directly in SIGSEGV handler may cause problems
|
||||
// (probably because Exec() creates new thread, faults of this thread aren't handled by this handler anymore)
|
||||
Emu.GetCallbackManager().Async([this]()
|
||||
{
|
||||
SPU.Status.SetValue(SPU_STATUS_RUNNING);
|
||||
Exec();
|
||||
});
|
||||
|
||||
}
|
||||
else if (value == SPU_RUNCNTL_STOP)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue