aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-02-20 06:07:05 +0000
committerko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-02-20 06:07:05 +0000
commit661955cc39db3a96f9adc731e3df7c2fef9882ef (patch)
tree82bb1f03c02d7ec9d83e7648e5829388576c2429
parenta29c96840dcadfbbf953f765b1909c9ca84098ed (diff)
downloadruby-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--ChangeLog5
-rw-r--r--thread.c9
-rw-r--r--version.h6
3 files changed, 13 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index ceca926a6a..a2dd247bd0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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.
diff --git a/thread.c b/thread.c
index e9dc5386b4..d206e58afc 100644
--- a/thread.c
+++ b/thread.c
@@ -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);
}
- }
+}
/*
diff --git a/version.h b/version.h
index c750a98496..4260fe39a0 100644
--- a/version.h
+++ b/version.h
@@ -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[];