diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-05-02 14:59:28 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-05-02 14:59:28 +0000 |
commit | 96b0b1cf82bf3df9d44ba08fc314d19ee0e82b34 (patch) | |
tree | fe9ccce66166e2b9d363d09665c5abe39b80d7c7 /io.c | |
parent | 3a0a3f4ea22b88286b835518d7ec5d2d5308f34a (diff) | |
download | ruby-96b0b1cf82bf3df9d44ba08fc314d19ee0e82b34.tar.gz |
* 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
Diffstat (limited to 'io.c')
-rw-r--r-- | io.c | 23 |
1 files changed, 11 insertions, 12 deletions
@@ -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 |