diff options
-rw-r--r-- | ChangeLog | 11 | ||||
-rw-r--r-- | io.c | 10 |
2 files changed, 13 insertions, 8 deletions
@@ -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. @@ -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: |