aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.HLE/HOS/Services/Sockets
diff options
context:
space:
mode:
authorgdkchan <gab.dark.100@gmail.com>2022-06-11 14:58:30 -0300
committerGitHub <noreply@github.com>2022-06-11 14:58:30 -0300
commit70895bdb04c51e92b4d84946c66c122f9d54a73f (patch)
treee0dfa460afe48ce343ae94ab66125f4a0b7de5b4 /Ryujinx.HLE/HOS/Services/Sockets
parent830cbf91bb8766e6347291bdff765a8a4e8c95b8 (diff)
Allow concurrent BSD EventFd read/write (#3385)
Diffstat (limited to 'Ryujinx.HLE/HOS/Services/Sockets')
-rw-r--r--Ryujinx.HLE/HOS/Services/Sockets/Bsd/Impl/EventFileDescriptor.cs9
1 files changed, 3 insertions, 6 deletions
diff --git a/Ryujinx.HLE/HOS/Services/Sockets/Bsd/Impl/EventFileDescriptor.cs b/Ryujinx.HLE/HOS/Services/Sockets/Bsd/Impl/EventFileDescriptor.cs
index e92b42ef..ea63e842 100644
--- a/Ryujinx.HLE/HOS/Services/Sockets/Bsd/Impl/EventFileDescriptor.cs
+++ b/Ryujinx.HLE/HOS/Services/Sockets/Bsd/Impl/EventFileDescriptor.cs
@@ -8,7 +8,6 @@ namespace Ryujinx.HLE.HOS.Services.Sockets.Bsd
{
private ulong _value;
private readonly EventFdFlags _flags;
- private AutoResetEvent _event;
private object _lock = new object();
@@ -21,7 +20,6 @@ namespace Ryujinx.HLE.HOS.Services.Sockets.Bsd
{
_value = value;
_flags = flags;
- _event = new AutoResetEvent(false);
WriteEvent = new ManualResetEvent(true);
ReadEvent = new ManualResetEvent(true);
@@ -31,7 +29,6 @@ namespace Ryujinx.HLE.HOS.Services.Sockets.Bsd
public void Dispose()
{
- _event.Dispose();
WriteEvent.Dispose();
ReadEvent.Dispose();
}
@@ -57,7 +54,7 @@ namespace Ryujinx.HLE.HOS.Services.Sockets.Bsd
{
while (_value == 0)
{
- _event.WaitOne();
+ Monitor.Wait(_lock);
}
}
else
@@ -106,7 +103,7 @@ namespace Ryujinx.HLE.HOS.Services.Sockets.Bsd
{
if (Blocking)
{
- _event.WaitOne();
+ Monitor.Wait(_lock);
}
else
{
@@ -119,7 +116,7 @@ namespace Ryujinx.HLE.HOS.Services.Sockets.Bsd
writeSize = sizeof(ulong);
_value += count;
- _event.Set();
+ Monitor.Pulse(_lock);
WriteEvent.Set();