aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.HLE/HOS/Services/Nifm
diff options
context:
space:
mode:
authorgdkchan <gab.dark.100@gmail.com>2018-09-18 20:36:43 -0300
committerGitHub <noreply@github.com>2018-09-18 20:36:43 -0300
commitb8133c19971c7a2026af803003fafedbdb70488e (patch)
tree84f4630e897ccd3f77b86051241a22a6cf45193d /Ryujinx.HLE/HOS/Services/Nifm
parent33e2810ef36fe0cf613aecd4c609f425aed02539 (diff)
Thread scheduler rewrite (#393)
* Started to rewrite the thread scheduler * Add a single core-like scheduling mode, enabled by default * Clear exclusive monitor on context switch * Add SetThreadActivity, misc fixes * Implement WaitForAddress and SignalToAddress svcs, misc fixes * Misc fixes (on SetActivity and Arbiter), other tweaks * Rebased * Add missing null check * Rename multicore key on config, fix UpdatePriorityInheritance * Make scheduling data MLQs private * nit: Ordering
Diffstat (limited to 'Ryujinx.HLE/HOS/Services/Nifm')
-rw-r--r--Ryujinx.HLE/HOS/Services/Nifm/IGeneralService.cs2
-rw-r--r--Ryujinx.HLE/HOS/Services/Nifm/IRequest.cs23
2 files changed, 5 insertions, 20 deletions
diff --git a/Ryujinx.HLE/HOS/Services/Nifm/IGeneralService.cs b/Ryujinx.HLE/HOS/Services/Nifm/IGeneralService.cs
index ec68247b..6adbf00a 100644
--- a/Ryujinx.HLE/HOS/Services/Nifm/IGeneralService.cs
+++ b/Ryujinx.HLE/HOS/Services/Nifm/IGeneralService.cs
@@ -30,7 +30,7 @@ namespace Ryujinx.HLE.HOS.Services.Nifm
{
int Unknown = Context.RequestData.ReadInt32();
- MakeObject(Context, new IRequest());
+ MakeObject(Context, new IRequest(Context.Device.System));
Context.Device.Log.PrintStub(LogClass.ServiceNifm, "Stubbed.");
diff --git a/Ryujinx.HLE/HOS/Services/Nifm/IRequest.cs b/Ryujinx.HLE/HOS/Services/Nifm/IRequest.cs
index 7bd30ff9..3f4df719 100644
--- a/Ryujinx.HLE/HOS/Services/Nifm/IRequest.cs
+++ b/Ryujinx.HLE/HOS/Services/Nifm/IRequest.cs
@@ -1,12 +1,11 @@
using Ryujinx.HLE.HOS.Ipc;
using Ryujinx.HLE.HOS.Kernel;
using Ryujinx.HLE.Logging;
-using System;
using System.Collections.Generic;
namespace Ryujinx.HLE.HOS.Services.Nifm
{
- class IRequest : IpcService, IDisposable
+ class IRequest : IpcService
{
private Dictionary<int, ServiceProcessRequest> m_Commands;
@@ -15,7 +14,7 @@ namespace Ryujinx.HLE.HOS.Services.Nifm
private KEvent Event0;
private KEvent Event1;
- public IRequest()
+ public IRequest(Horizon System)
{
m_Commands = new Dictionary<int, ServiceProcessRequest>()
{
@@ -27,8 +26,8 @@ namespace Ryujinx.HLE.HOS.Services.Nifm
{ 11, SetConnectionConfirmationOption }
};
- Event0 = new KEvent();
- Event1 = new KEvent();
+ Event0 = new KEvent(System);
+ Event1 = new KEvent(System);
}
public long GetRequestState(ServiceCtx Context)
@@ -77,19 +76,5 @@ namespace Ryujinx.HLE.HOS.Services.Nifm
return 0;
}
-
- public void Dispose()
- {
- Dispose(true);
- }
-
- protected virtual void Dispose(bool Disposing)
- {
- if (Disposing)
- {
- Event0.Dispose();
- Event1.Dispose();
- }
- }
}
} \ No newline at end of file