aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Core/OsHle/Handles
diff options
context:
space:
mode:
authorgdkchan <gab.dark.100@gmail.com>2018-03-04 20:32:18 -0300
committergdkchan <gab.dark.100@gmail.com>2018-03-04 20:32:18 -0300
commit344fc8a55de471121d3f600cca9e95315d0e502f (patch)
tree60f13e524c071d4c7592022674868aa7b216b9bd /Ryujinx.Core/OsHle/Handles
parent3edb66f389ac279bdcde26c5682aa39b9bf5f853 (diff)
Try fixing NvFlinger rotation with scaling, return correct error code on WaitSignal timeout, always display window at the center of the screen
Diffstat (limited to 'Ryujinx.Core/OsHle/Handles')
-rw-r--r--Ryujinx.Core/OsHle/Handles/KProcessScheduler.cs12
1 files changed, 8 insertions, 4 deletions
diff --git a/Ryujinx.Core/OsHle/Handles/KProcessScheduler.cs b/Ryujinx.Core/OsHle/Handles/KProcessScheduler.cs
index 2045f8a1..b1116078 100644
--- a/Ryujinx.Core/OsHle/Handles/KProcessScheduler.cs
+++ b/Ryujinx.Core/OsHle/Handles/KProcessScheduler.cs
@@ -183,7 +183,7 @@ namespace Ryujinx.Core.OsHle.Handles
TryResumingExecution(SchedThread);
}
- public void WaitForSignal(HThread Thread, int Timeout = -1)
+ public bool WaitForSignal(HThread Thread, int Timeout = -1)
{
SchedulerThread SchedThread;
@@ -206,22 +206,26 @@ namespace Ryujinx.Core.OsHle.Handles
{
Logging.Error($"{GetDbgThreadInfo(Thread)} was not found on the scheduler queue!");
- return;
+ return false;
}
}
+ bool Result;
+
if (Timeout >= 0)
{
Logging.Debug($"{GetDbgThreadInfo(Thread)} has wait timeout of {Timeout}ms.");
- SchedThread.WaitEvent.WaitOne(Timeout);
+ Result = SchedThread.WaitEvent.WaitOne(Timeout);
}
else
{
- SchedThread.WaitEvent.WaitOne();
+ Result = SchedThread.WaitEvent.WaitOne();
}
TryResumingExecution(SchedThread);
+
+ return Result;
}
private void TryResumingExecution(SchedulerThread SchedThread)