diff options
author | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-02-20 06:07:05 +0000 |
---|---|---|
committer | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-02-20 06:07:05 +0000 |
commit | 661955cc39db3a96f9adc731e3df7c2fef9882ef (patch) | |
tree | 82bb1f03c02d7ec9d83e7648e5829388576c2429 | |
parent | a29c96840dcadfbbf953f765b1909c9ca84098ed (diff) | |
download | ruby-661955cc39db3a96f9adc731e3df7c2fef9882ef.tar.gz |
* thread.c (do_select, rb_thread_wait_fd_rw): raise sys error if
errno is not 0 and EBADF.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11795 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | thread.c | 9 | ||||
-rw-r--r-- | version.h | 6 |
3 files changed, 13 insertions, 7 deletions
@@ -1,3 +1,8 @@ +Tue Feb 20 15:03:29 2007 Koichi Sasada <ko1@atdot.net> + + * thread.c (do_select, rb_thread_wait_fd_rw): raise sys error if + errno is not 0 and EBADF. + Mon Feb 19 22:15:31 2007 Nobuyoshi Nakada <nobu@ruby-lang.org> * configure.in (RUBY_REPLACE_TYPE): cache convertible type info. @@ -1716,9 +1716,6 @@ do_select(int n, fd_set *read, fd_set *write, fd_set *except, #endif goto retry; } - else { - rb_bug("fatal error on select() - errno: %d\n", lerrno); - } } return result; } @@ -1740,6 +1737,10 @@ rb_thread_wait_fd_rw(int fd, int read) else { result = do_select(fd + 1, 0, rb_fd_ptr(&set), 0, 0); } + + if (result < 0 && errno != EBADF) { + rb_sys_fail(0); + } } thread_debug("rb_thread_wait_fd_rw(%d, %s): done\n", fd, read ? "read" : "write"); @@ -1773,7 +1774,7 @@ rb_thread_select(int max, fd_set * read, fd_set * write, fd_set * except, else { return do_select(max, read, write, except, timeout); } - } +} /* @@ -1,7 +1,7 @@ #define RUBY_VERSION "1.9.0" -#define RUBY_RELEASE_DATE "2007-02-19" +#define RUBY_RELEASE_DATE "2007-02-20" #define RUBY_VERSION_CODE 190 -#define RUBY_RELEASE_CODE 20070219 +#define RUBY_RELEASE_CODE 20070220 #define RUBY_PATCHLEVEL 0 #define RUBY_VERSION_MAJOR 1 @@ -9,7 +9,7 @@ #define RUBY_VERSION_TEENY 0 #define RUBY_RELEASE_YEAR 2007 #define RUBY_RELEASE_MONTH 2 -#define RUBY_RELEASE_DAY 19 +#define RUBY_RELEASE_DAY 20 RUBY_EXTERN const char ruby_version[]; RUBY_EXTERN const char ruby_release_date[]; |