summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkosaki <kosaki@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-12-18 10:07:15 +0000
committerkosaki <kosaki@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-12-18 10:07:15 +0000
commit06dcf7840fd6a9f7f6ad48ff9ce9d0bbe180c1eb (patch)
tree87d88059722222c445db0ecb39262dec5cf2c0d2
parent005db82d368d9e030b3b370ceba8b46e739b2b2b (diff)
* io.c (rb_io_wait_writable): don't use rb_thread_wait_fd()
because it is for waiting until io readable. * io.c (rb_io_wait_writable): always use rb_thread_fd_writable() instaed of bare rb_wait_for_single_fd(). we shouldn't ignore return value. * io.c (rb_io_wait_readable): ditto. always use rb_thread_wait_fd(). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38448 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog11
-rw-r--r--io.c10
2 files changed, 13 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index 59cd9dc300..321e6035da 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+Tue Dec 18 18:57:58 2012 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
+
+
+ * io.c (rb_io_wait_writable): don't use rb_thread_wait_fd()
+ because it is for waiting until io readable.
+
+ * io.c (rb_io_wait_writable): always use rb_thread_fd_writable()
+ instaed of bare rb_wait_for_single_fd(). we shouldn't ignore
+ return value.
+ * io.c (rb_io_wait_readable): ditto. always use rb_thread_wait_fd().
+
Tue Dec 18 18:55:33 2012 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
* thread.c (rb_thread_wait_fd_rw): fix infinite loop bug.
diff --git a/io.c b/io.c
index 3047da4380..25680cf83e 100644
--- a/io.c
+++ b/io.c
@@ -1050,14 +1050,11 @@ rb_io_wait_readable(int f)
#if defined(ERESTART)
case ERESTART:
#endif
- rb_thread_wait_fd(f);
- return TRUE;
-
case EAGAIN:
#if defined(EWOULDBLOCK) && EWOULDBLOCK != EAGAIN
case EWOULDBLOCK:
#endif
- rb_wait_for_single_fd(f, RB_WAITFD_IN, NULL);
+ rb_thread_wait_fd(f);
return TRUE;
default:
@@ -1076,14 +1073,11 @@ rb_io_wait_writable(int f)
#if defined(ERESTART)
case ERESTART:
#endif
- rb_thread_wait_fd(f);
- return TRUE;
-
case EAGAIN:
#if defined(EWOULDBLOCK) && EWOULDBLOCK != EAGAIN
case EWOULDBLOCK:
#endif
- rb_wait_for_single_fd(f, RB_WAITFD_OUT, NULL);
+ rb_thread_fd_writable(f);
return TRUE;
default: