diff options
| author | gdkchan <gab.dark.100@gmail.com> | 2022-06-11 14:58:30 -0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-06-11 14:58:30 -0300 |
| commit | 70895bdb04c51e92b4d84946c66c122f9d54a73f (patch) | |
| tree | e0dfa460afe48ce343ae94ab66125f4a0b7de5b4 /Ryujinx.HLE/HOS/Services/Sockets | |
| parent | 830cbf91bb8766e6347291bdff765a8a4e8c95b8 (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.cs | 9 |
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(); |
