diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | thread.c | 8 |
2 files changed, 8 insertions, 5 deletions
@@ -1,3 +1,8 @@ +Tue Dec 18 18:55:33 2012 KOSAKI Motohiro <kosaki.motohiro@gmail.com> + + * thread.c (rb_thread_wait_fd_rw): fix infinite loop bug. + rb_wait_for_single_fd() never return positive number. + Tue Dec 18 17:24:40 2012 Eric Hodel <drbrain@segment7.net> * lib/rdoc/encoding.rb: Do not remove #! line from document when @@ -3320,12 +3320,10 @@ rb_thread_wait_fd_rw(int fd, int read) if (fd < 0) { rb_raise(rb_eIOError, "closed stream"); } - while (result <= 0) { - result = rb_wait_for_single_fd(fd, events, NULL); - if (result < 0) { - rb_sys_fail(0); - } + result = rb_wait_for_single_fd(fd, events, NULL); + if (result < 0) { + rb_sys_fail(0); } thread_debug("rb_thread_wait_fd_rw(%d, %s): done\n", fd, read ? "read" : "write"); |