Răsfoiți Sursa

bsd: Fix Poll(0) returning ETIMEDOUT instead of SUCCESS

This was an oversight of the implementation.
Mary 3 ani în urmă
părinte
comite
67cbdc3a6a
1 a modificat fișierele cu 6 adăugiri și 0 ștergeri
  1. 6 0
      Ryujinx.HLE/HOS/Services/Sockets/Bsd/IClient.cs

+ 6 - 0
Ryujinx.HLE/HOS/Services/Sockets/Bsd/IClient.cs

@@ -336,6 +336,12 @@ namespace Ryujinx.HLE.HOS.Services.Sockets.Bsd
                 context.Memory.Write(outputBufferPosition + (ulong)(i * Unsafe.SizeOf<PollEventData>()), events[i].Data);
             }
 
+            // In case of non blocking call timeout should not be returned.
+            if (timeout == 0 && errno == LinuxError.ETIMEDOUT)
+            {
+                errno = LinuxError.SUCCESS;
+            }
+
             return WriteBsdResult(context, updateCount, errno);
         }