Fix bad merge, and a few other fixes

This commit is contained in:
gdkchan 2018-04-19 00:19:22 -03:00
parent ac80e7d3f9
commit 6e69cd9284
4 changed files with 14 additions and 3 deletions

View file

@ -95,6 +95,11 @@ namespace Ryujinx.Core.OsHle.Handles
return Threads.Contains(SchedThread); return Threads.Contains(SchedThread);
} }
} }
public bool Remove(SchedulerThread SchedThread)
{
return Threads.Remove(SchedThread);
}
} }
private ConcurrentDictionary<KThread, SchedulerThread> AllThreads; private ConcurrentDictionary<KThread, SchedulerThread> AllThreads;
@ -153,6 +158,11 @@ namespace Ryujinx.Core.OsHle.Handles
lock (SchedLock) lock (SchedLock)
{ {
if (AllThreads.TryRemove(Thread, out SchedulerThread SchedThread))
{
WaitingToRun[Thread.ProcessorId].Remove(SchedThread);
}
SchedulerThread NewThread = WaitingToRun[Thread.ProcessorId].Pop(); SchedulerThread NewThread = WaitingToRun[Thread.ProcessorId].Pop();
if (NewThread == null) if (NewThread == null)

View file

@ -179,6 +179,8 @@ namespace Ryujinx.Core.OsHle
} }
VsyncEvent.Dispose(); VsyncEvent.Dispose();
Scheduler.Dispose();
} }
} }
} }

View file

@ -370,8 +370,6 @@ namespace Ryujinx.Core.OsHle
INvDrvServices.NvMapsById.DeleteProcess(this); INvDrvServices.NvMapsById.DeleteProcess(this);
INvDrvServices.NvMapsFb .DeleteProcess(this); INvDrvServices.NvMapsFb .DeleteProcess(this);
Scheduler.Dispose();
AppletState.Dispose(); AppletState.Dispose();
SvcHandler.Dispose(); SvcHandler.Dispose();

View file

@ -25,8 +25,9 @@ namespace Ryujinx.Core.OsHle.Services.Aud
}; };
SystemEvent = new KEvent(); SystemEvent = new KEvent();
//TODO: We shouldn't be signaling this here. //TODO: We shouldn't be signaling this here.
SystemEvent.Handle.Set(); SystemEvent.WaitEvent.Set();
} }
public long ListAudioDeviceName(ServiceCtx Context) public long ListAudioDeviceName(ServiceCtx Context)