From ac80e7d3f90496d5f16f53afed888cd854fe6975 Mon Sep 17 00:00:00 2001 From: gdkchan Date: Thu, 19 Apr 2018 00:00:29 -0300 Subject: [PATCH] [HLE/Kernel] Yield when cond var is signaled --- Ryujinx.Core/OsHle/Kernel/ConditionVariable.cs | 2 ++ Ryujinx.Core/OsHle/Kernel/SvcHandler.cs | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/Ryujinx.Core/OsHle/Kernel/ConditionVariable.cs b/Ryujinx.Core/OsHle/Kernel/ConditionVariable.cs index 34d5820bfc..4e64a154ed 100644 --- a/Ryujinx.Core/OsHle/Kernel/ConditionVariable.cs +++ b/Ryujinx.Core/OsHle/Kernel/ConditionVariable.cs @@ -111,6 +111,8 @@ namespace Ryujinx.Core.OsHle.Kernel } } } + + Process.Scheduler.Yield(Thread); } private void AcquireCondVarValue() diff --git a/Ryujinx.Core/OsHle/Kernel/SvcHandler.cs b/Ryujinx.Core/OsHle/Kernel/SvcHandler.cs index 4d93ef2947..fa772988fe 100644 --- a/Ryujinx.Core/OsHle/Kernel/SvcHandler.cs +++ b/Ryujinx.Core/OsHle/Kernel/SvcHandler.cs @@ -18,7 +18,7 @@ namespace Ryujinx.Core.OsHle.Kernel private Process Process; private AMemory Memory; - private ConcurrentDictionary Mutexes; + private ConcurrentDictionary Mutexes; private ConcurrentDictionary CondVars; private HashSet<(HSharedMem, long)> MappedSharedMems;