summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorTomoyuki Sahara <[email protected]>2014-06-10 10:22:50 +0900
committerTomoyuki Sahara <[email protected]>2014-06-10 10:22:50 +0900
commitd894de86f4429aba22055c8319fcf930ac39bdb4 (patch)
tree7a6d7feb1cdea91aabcd43ea067ea9b8cdea6513 /src
parent9ee9c271d11fe125421f025b850a105ac3c40bcd (diff)
downloadmruby-d894de86f4429aba22055c8319fcf930ac39bdb4.tar.gz
mruby-d894de86f4429aba22055c8319fcf930ac39bdb4.zip
fd2 is valid if fd2 >= 0. fixes #18.
Diffstat (limited to 'src')
-rw-r--r--src/io.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/io.c b/src/io.c
index 5d024c140..a43796b3d 100644
--- a/src/io.c
+++ b/src/io.c
@@ -646,7 +646,7 @@ mrb_io_s_select(mrb_state *mrb, mrb_value klass)
FD_SET(fptr->fd, ep);
if (max < fptr->fd)
max = fptr->fd;
- if (fptr->fd2) {
+ if (fptr->fd2 >= 0) {
FD_SET(fptr->fd2, ep);
if (max < fptr->fd2)
max = fptr->fd2;
@@ -694,7 +694,7 @@ retry:
fptr = (struct mrb_io *)mrb_get_datatype(mrb, RARRAY_PTR(write)[i], &mrb_io_type);
if (FD_ISSET(fptr->fd, wp)) {
mrb_ary_push(mrb, list, RARRAY_PTR(write)[i]);
- } else if (fptr->fd2 && FD_ISSET(fptr->fd2, wp)) {
+ } else if (fptr->fd2 >= 0 && FD_ISSET(fptr->fd2, wp)) {
mrb_ary_push(mrb, list, RARRAY_PTR(write)[i]);
}
}
@@ -706,7 +706,7 @@ retry:
fptr = (struct mrb_io *)mrb_get_datatype(mrb, RARRAY_PTR(except)[i], &mrb_io_type);
if (FD_ISSET(fptr->fd, ep)) {
mrb_ary_push(mrb, list, RARRAY_PTR(except)[i]);
- } else if (fptr->fd2 && FD_ISSET(fptr->fd2, wp)) {
+ } else if (fptr->fd2 >= 0 && FD_ISSET(fptr->fd2, wp)) {
mrb_ary_push(mrb, list, RARRAY_PTR(except)[i]);
}
}