summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorshyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-01-07 01:09:10 +0000
committershyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-01-07 01:09:10 +0000
commitaf7147ea732912655271b43c517524835cbbcd74 (patch)
tree6363a569b72a80f7f34fb47b5d144b0ce9b54b6d
parent73a8afe6743dcdb6fadbc03cbef5ff99131bcba2 (diff)
merge revision(s) 18355:
* eval.c (timeofday): use monotonic clock. based on a patch from zimbatm <zimbatm@oree.ch> in [ruby-core:16627]. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_6@21357 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--configure.in1
-rw-r--r--eval.c9
-rw-r--r--version.h8
4 files changed, 19 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index bdb047a506..8df88b75ef 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Wed Jan 7 10:06:12 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * eval.c (timeofday): use monotonic clock. based on a patch
+ from zimbatm <zimbatm@oree.ch> in [ruby-core:16627].
+
Tue Jan 6 09:02:14 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
* parse.y (yylex): 8 and 9 in octal integer should cause compile
diff --git a/configure.in b/configure.in
index c7758620f7..136fe7c661 100644
--- a/configure.in
+++ b/configure.in
@@ -472,6 +472,7 @@ esac
AC_CHECK_LIB(crypt, crypt)
AC_CHECK_LIB(dl, dlopen) # Dynamic linking for SunOS/Solaris and SYSV
AC_CHECK_LIB(dld, shl_load) # Dynamic linking for HP-UX
+AC_CHECK_LIB(rt, clock_gettime) # GNU/Linux
case "$target_cpu" in
alpha*) case "$target_os"::"$GCC" in
diff --git a/eval.c b/eval.c
index 2938c70acd..b176b885ec 100644
--- a/eval.c
+++ b/eval.c
@@ -72,6 +72,8 @@ char *strrchr _((const char*,const char));
#include <unistd.h>
#endif
+#include <time.h>
+
#ifdef __BEOS__
#include <net/socket.h>
#endif
@@ -10080,6 +10082,13 @@ static double
timeofday()
{
struct timeval tv;
+#ifdef CLOCK_MONOTONIC
+ struct timespec tp;
+
+ if (clock_gettime(CLOCK_MONOTONIC, &tp) == 0) {
+ return (double)tp.tv_sec + (double)tp.tv_nsec * 1e-9;
+ }
+#endif
gettimeofday(&tv, NULL);
return (double)tv.tv_sec + (double)tv.tv_usec * 1e-6;
}
diff --git a/version.h b/version.h
index 526e928382..c7fed18897 100644
--- a/version.h
+++ b/version.h
@@ -1,15 +1,15 @@
#define RUBY_VERSION "1.8.6"
-#define RUBY_RELEASE_DATE "2009-01-06"
+#define RUBY_RELEASE_DATE "2009-01-07"
#define RUBY_VERSION_CODE 186
-#define RUBY_RELEASE_CODE 20090106
-#define RUBY_PATCHLEVEL 291
+#define RUBY_RELEASE_CODE 20090107
+#define RUBY_PATCHLEVEL 292
#define RUBY_VERSION_MAJOR 1
#define RUBY_VERSION_MINOR 8
#define RUBY_VERSION_TEENY 6
#define RUBY_RELEASE_YEAR 2009
#define RUBY_RELEASE_MONTH 1
-#define RUBY_RELEASE_DAY 6
+#define RUBY_RELEASE_DAY 7
#ifdef RUBY_EXTERN
RUBY_EXTERN const char ruby_version[];