summaryrefslogtreecommitdiffstats
path: root/io.c
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-05-02 14:59:28 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-05-02 14:59:28 +0000
commit596bbf375197869a2d14dbeb4c3239e8899a6947 (patch)
treefe9ccce66166e2b9d363d09665c5abe39b80d7c7 /io.c
parent69a08148deb8249933abf5408ef47924b799359a (diff)
downloadruby-596bbf375197869a2d14dbeb4c3239e8899a6947.tar.gz
ruby-596bbf375197869a2d14dbeb4c3239e8899a6947.tar.xz
ruby-596bbf375197869a2d14dbeb4c3239e8899a6947.zip
* io.c (internal_read_func, internal_write_func): split from
internal_io_func. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@16273 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'io.c')
-rw-r--r--io.c23
1 files changed, 11 insertions, 12 deletions
diff --git a/io.c b/io.c
index d0597d2fa..4c9a50d80 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