From 20774dab14ca8362e716ce87f975be7ea77beead Mon Sep 17 00:00:00 2001
From: gdkchan <gab.dark.100@gmail.com>
Date: Fri, 17 Jul 2020 01:22:13 -0300
Subject: Improve kernel WaitSynchronization syscall implementation (#1362)

---
 Ryujinx.HLE/HOS/Kernel/Threading/KThread.cs | 8 ++++++++
 1 file changed, 8 insertions(+)

(limited to 'Ryujinx.HLE/HOS/Kernel/Threading/KThread.cs')

diff --git a/Ryujinx.HLE/HOS/Kernel/Threading/KThread.cs b/Ryujinx.HLE/HOS/Kernel/Threading/KThread.cs
index 754a1e53..d4603178 100644
--- a/Ryujinx.HLE/HOS/Kernel/Threading/KThread.cs
+++ b/Ryujinx.HLE/HOS/Kernel/Threading/KThread.cs
@@ -12,6 +12,8 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
 {
     class KThread : KSynchronizationObject, IKFutureSchedulerObject
     {
+        public const int MaxWaitSyncObjects = 64;
+
         private int _hostThreadRunning;
 
         public Thread HostThread { get; private set; }
@@ -39,6 +41,9 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
         public ulong TlsAddress => _tlsAddress;
         public ulong TlsDramAddress { get; private set; }
 
+        public KSynchronizationObject[] WaitSyncObjects { get; }
+        public int[] WaitSyncHandles { get; }
+
         public long LastScheduledTime { get; set; }
 
         public LinkedListNode<KThread>[] SiblingsPerCore { get; private set; }
@@ -96,6 +101,9 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
             _scheduler      = KernelContext.Scheduler;
             _schedulingData = KernelContext.Scheduler.SchedulingData;
 
+            WaitSyncObjects = new KSynchronizationObject[MaxWaitSyncObjects];
+            WaitSyncHandles = new int[MaxWaitSyncObjects];
+
             SiblingsPerCore = new LinkedListNode<KThread>[KScheduler.CpuCoresCount];
 
             _mutexWaiters = new LinkedList<KThread>();
-- 
cgit v1.2.3-70-g09d2