From 70895bdb04c51e92b4d84946c66c122f9d54a73f Mon Sep 17 00:00:00 2001 From: gdkchan Date: Sat, 11 Jun 2022 14:58:30 -0300 Subject: Allow concurrent BSD EventFd read/write (#3385) --- Ryujinx.HLE/HOS/Kernel/Process/KProcess.cs | 5 +++-- Ryujinx.HLE/HOS/Kernel/SupervisorCall/Syscall.cs | 15 ++++++++++++++- 2 files changed, 17 insertions(+), 3 deletions(-) (limited to 'Ryujinx.HLE/HOS/Kernel') diff --git a/Ryujinx.HLE/HOS/Kernel/Process/KProcess.cs b/Ryujinx.HLE/HOS/Kernel/Process/KProcess.cs index 0caeacad..d01c3e3b 100644 --- a/Ryujinx.HLE/HOS/Kernel/Process/KProcess.cs +++ b/Ryujinx.HLE/HOS/Kernel/Process/KProcess.cs @@ -735,11 +735,12 @@ namespace Ryujinx.HLE.HOS.Kernel.Process ulong argsPtr, ulong stackTop, int priority, - int cpuCore) + int cpuCore, + ThreadStart customThreadStart = null) { lock (_processLock) { - return thread.Initialize(entrypoint, argsPtr, stackTop, priority, cpuCore, this, ThreadType.User, null); + return thread.Initialize(entrypoint, argsPtr, stackTop, priority, cpuCore, this, ThreadType.User, customThreadStart); } } diff --git a/Ryujinx.HLE/HOS/Kernel/SupervisorCall/Syscall.cs b/Ryujinx.HLE/HOS/Kernel/SupervisorCall/Syscall.cs index 179c7d4b..189e4a3e 100644 --- a/Ryujinx.HLE/HOS/Kernel/SupervisorCall/Syscall.cs +++ b/Ryujinx.HLE/HOS/Kernel/SupervisorCall/Syscall.cs @@ -2350,6 +2350,18 @@ namespace Ryujinx.HLE.HOS.Kernel.SupervisorCall [PointerSized] ulong stackTop, int priority, int cpuCore) + { + return CreateThread(out handle, entrypoint, argsPtr, stackTop, priority, cpuCore, null); + } + + public KernelResult CreateThread( + out int handle, + ulong entrypoint, + ulong argsPtr, + ulong stackTop, + int priority, + int cpuCore, + ThreadStart customThreadStart) { handle = 0; @@ -2386,7 +2398,8 @@ namespace Ryujinx.HLE.HOS.Kernel.SupervisorCall argsPtr, stackTop, priority, - cpuCore); + cpuCore, + customThreadStart); if (result == KernelResult.Success) { -- cgit v1.2.3