From 96b0b1cf82bf3df9d44ba08fc314d19ee0e82b34 Mon Sep 17 00:00:00 2001 From: nobu Date: Fri, 2 May 2008 14:59:28 +0000 Subject: * io.c (internal_read_func, internal_write_func): split from internal_io_func. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16273 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- io.c | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) (limited to 'io.c') diff --git a/io.c b/io.c index d0597d2fab..4c9a50d80a 100644 --- a/io.c +++ b/io.c @@ -512,19 +512,20 @@ struct io_internal_struct { int fd; void *buf; size_t capa; - int is_read; }; static VALUE -internal_io_func(void *ptr) +internal_read_func(void *ptr) { struct io_internal_struct *iis = (struct io_internal_struct*)ptr; - if (iis->is_read) { - return read(iis->fd, iis->buf, iis->capa); - } - else { - return write(iis->fd, iis->buf, iis->capa); - } + return read(iis->fd, iis->buf, iis->capa); +} + +static VALUE +internal_write_func(void *ptr) +{ + struct io_internal_struct *iis = (struct io_internal_struct*)ptr; + return write(iis->fd, iis->buf, iis->capa); } static int @@ -534,9 +535,8 @@ rb_read_internal(int fd, void *buf, size_t count) iis.fd = fd; iis.buf = buf; iis.capa = count; - iis.is_read = 1; - return rb_thread_blocking_region(internal_io_func, &iis, RB_UBF_DFL, 0); + return rb_thread_blocking_region(internal_read_func, &iis, RB_UBF_DFL, 0); } static int @@ -546,9 +546,8 @@ rb_write_internal(int fd, void *buf, size_t count) iis.fd = fd; iis.buf = buf; iis.capa = count; - iis.is_read = 0; - return rb_thread_blocking_region(internal_io_func, &iis, RB_UBF_DFL, 0); + return rb_thread_blocking_region(internal_write_func, &iis, RB_UBF_DFL, 0); } static int -- cgit v1.2.3