diff --git a/ChangeLog b/ChangeLog index 19941b8869..eeef38a33f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Tue Jul 6 22:57:21 2010 Tanaka Akira + + * io.c (nogvl_copy_stream_sendfile): jump to retry_sendfile directly + to avoid select() on a socket which TCP state is CLOSED. + patch by Eric Wong. [ruby-core:31053] + Tue Jul 6 21:45:34 2010 NAKAMURA Usaku * io/console/console.c (winsize_row): should return actual screen diff --git a/io.c b/io.c index 5129a143aa..4e239f8601 100644 --- a/io.c +++ b/io.c @@ -8147,8 +8147,7 @@ nogvl_copy_stream_sendfile(struct copy_stream_struct *stp) stp->total += ss; copy_length -= ss; if (0 < copy_length) { - ss = -1; - errno = EAGAIN; + goto retry_sendfile; } } if (ss == -1) {