Issue #11145 has been reported by Eric Wong.

----------------------------------------
Feature #11145: [PATCH] socket: avoid redundant fcntl with MSG_DONTWAIT
https://bugs.ruby-lang.org/issues/11145

* Author: Eric Wong
* Status: Open
* Priority: Normal
* Assignee: Akira Tanaka
----------------------------------------
MSG_DONTWAIT is enough to force non-blocking I/O under Linux,
so avoid changing the state of a socket.  This will allow certain
threads to do a non-destructive non-blocking "peek" while others
block (without relying on an extra ppoll syscall).

I suspect any OS with the MSG_DONTWAIT flag implements it correctly.  AFAIK,
MSG_DONTWAIT is only on FreeBSD and Linux, and I've only tested on Linux.

* ext/socket/init.c (rsock_s_recvfrom_nonblock): avoid redundant fcntl


---Files--------------------------------
0001-ext-socket-init.c-rsock_s_recvfrom_nonblock-avoid-re.patch (1.02 KB)


-- 
https://bugs.ruby-lang.org/