normal / ruby-lang.org wrote:
>     spec/ruby/core/io/select_spec.rb: workaround stuck IO.select
>     
>     Under pipe page memory pressure on Linux, a pipe may only be
>     created with a single buffer[1].  And as of Linux v4.18, the
>     fs/pipe.c::pipe_poll callback does not account for merging
>     done in fs/pipe::pipe_write; only the number of usable buffers
>     in the pipe.  Thus it is possible for a pipe to be writable
>     (if only by a small amount) despite IO.select saying it is not.

After starting work on a patch to solve the problem in Linux,
I've concluded it cannot be fixed in Linux since attempting to
write an exactly PAGE_SIZE-ed buffer will continually wake up
from poll, and write will fail with EAGAIN, so it'd just burn
up CPU.

Thus my attempt at solving this issue is bogus.
https://80x24.org/spew/20180820030041.18715-1-normalperson / yhbt.net/raw

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>