diff options
| author | gdkchan <gab.dark.100@gmail.com> | 2018-03-04 20:32:18 -0300 |
|---|---|---|
| committer | gdkchan <gab.dark.100@gmail.com> | 2018-03-04 20:32:18 -0300 |
| commit | 344fc8a55de471121d3f600cca9e95315d0e502f (patch) | |
| tree | 60f13e524c071d4c7592022674868aa7b216b9bd /Ryujinx.Core/OsHle/Handles | |
| parent | 3edb66f389ac279bdcde26c5682aa39b9bf5f853 (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.cs | 12 |
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) |
