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

View file

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

View file

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

View file

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