(Hopefully) Properly check if the thread is blocked when stepping
This commit is contained in:
parent
144aa2f5b1
commit
f934d23de4
1 changed files with 5 additions and 1 deletions
|
@ -1442,12 +1442,16 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
|
||||||
{
|
{
|
||||||
lock (_activityOperationLock)
|
lock (_activityOperationLock)
|
||||||
{
|
{
|
||||||
|
KernelContext.CriticalSection.Enter();
|
||||||
|
bool blocked = MutexOwner != null || WaitingInArbitration || WaitingSync;
|
||||||
if (_debugState != (int)DebugState.Stopped
|
if (_debugState != (int)DebugState.Stopped
|
||||||
|| (_forcePauseFlags & ThreadSchedState.ThreadPauseFlag) == 0
|
|| (_forcePauseFlags & ThreadSchedState.ThreadPauseFlag) == 0
|
||||||
|| MutexOwner != null)
|
|| blocked)
|
||||||
{
|
{
|
||||||
|
KernelContext.CriticalSection.Leave();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
KernelContext.CriticalSection.Leave();
|
||||||
|
|
||||||
Context.RequestDebugStep();
|
Context.RequestDebugStep();
|
||||||
Resume(ThreadSchedState.ThreadPauseFlag);
|
Resume(ThreadSchedState.ThreadPauseFlag);
|
||||||
|
|
Loading…
Reference in a new issue