From: Akira Tanaka Date: 2011-06-02T20:20:52+09:00 Subject: [ruby-core:36695] [Ruby 1.9 - Bug #4683] [PATCH] io.c: copy_stream execute interrupts and retry Issue #4683 has been updated by Akira Tanaka. File copy_stream_interrupt_handling-2.patch added Adding public functions needs a discussion with ko1. copy_stream_interrupt_handling-2.patch uses internal.h to share declarations between io.c and thread.c. ---------------------------------------- Bug #4683: [PATCH] io.c: copy_stream execute interrupts and retry http://redmine.ruby-lang.org/issues/4683 Author: Eric Wong Status: Assigned Priority: Normal Assignee: Akira Tanaka Category: core Target version: 1.9.3 ruby -v: ruby 1.9.3dev (2011-05-13 trunk 31504) [x86_64-linux] It's debatable whether this is a bug or not, but I think the current interrupt handling behavior with IO.copy_stream is fragile and unpredictable, and inconsistent with IO#read and IO#write. This is to be consistent with IO#read and IO#write behavior where rb_io_wait_readable() and rb_io_wait_writable() retry on interrupt (EAGAIN/ERESTART) instead of returning a short copy or raising Errno::EINTR. -- http://redmine.ruby-lang.org