From: msuchanek@... Date: 2020-02-12T20:34:50+00:00 Subject: [ruby-core:97146] [Ruby master Feature#16597] missing poll() Issue #16597 has been updated by michals (Michal Such�nek). This is the current result: `$ ruby unix_test.rb select: [[:@sock], [:@sock], [:@sock]] poll: [[:@sock], [:@sock], [:@sock], [:@sock]] select: [[], [:@sock], []] poll: [[], [:@sock], [], []]` If this is to be expected or the emulation should be adjusted might need some discussion. I expect that using select without emulation would give `select: [[:@sock], [], []]` in the first line. ---------------------------------------- Feature #16597: missing poll() https://bugs.ruby-lang.org/issues/16597#change-84249 * Author: michals (Michal Such�nek) * Status: Open * Priority: Normal ---------------------------------------- When using a socket or a pipe for writing select() cannot determine that the socket is closed. It tells you that it is ready to write but if you don't have data to write you cannot tell that it is in fact closed. ruby internally uses poll() which can tell when a write socket is closed (without attempting a write()) but presents the broken select() interface. ---Files-------------------------------- test.rb (975 Bytes) 0001-io-move-poll-defines-to-internal-io.h.patch (3.44 KB) 0002-io-add-additional-argument-to-fd_select-calls.patch (9.54 KB) 0003-select_internal-add-additional-argument-for-poll-err.patch (4.4 KB) 0004-thread-use-poll-in-rb_fd_select.patch (3.88 KB) 0005-io-make-use-of-poll-POLLERR-flag.patch (1.24 KB) 0006-io-add-select_with_poll-class-method-when-USE_POLL.patch (2.71 KB) 0007-io-document-IO.select_with_poll.patch (2.04 KB) tcp_test.rb (1018 Bytes) 0008-test-fix-up-wait_for_single_fd-to-accept-RB_WAITFD_E.patch (1.86 KB) unix_test.rb (992 Bytes) -- https://bugs.ruby-lang.org/ Unsubscribe: