summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2006-07-06 13:22:23 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2006-07-06 13:22:23 +0000
commitaa2a96eb5bb64cecc1d540050009de5802ffbea4 (patch)
treec31cec4972377b6edd5927847f8340b36d871a2b
parent3ae44492277efe4d919874eb5aabc04d48ebf24a (diff)
* process.c (rb_proc_times): use sysconf(_SC_CLK_TCK) value prior to
HZ and CLK_TCK. fixed: [ruby-talk:200293] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@10475 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog9
-rw-r--r--configure.in18
-rw-r--r--process.c14
3 files changed, 34 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index 8a1fdf5379..7b1baf3afc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Thu Jul 6 22:21:57 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * process.c (rb_proc_times): use sysconf(_SC_CLK_TCK) value prior to
+ HZ and CLK_TCK. fixed: [ruby-talk:200293]
+
Thu Jul 6 22:17:21 2006 Minero Aoki <aamine@loveruby.net>
* ext/racc/cparse/cparse.c: sync with original code, rev 1.8.
@@ -11,9 +16,9 @@ Thu Jul 6 22:17:21 2006 Minero Aoki <aamine@loveruby.net>
Mon Jul 3 19:04:38 2006 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
* ext/tk/tcltklib.c (ip_make_menu_embeddable): help to make a menu
- widget embeddable (pack, grid, and so on) like as a general widget.
+ widget embeddable (pack, grid, and so on) like as a general widget.
However, an embeddable menu may require to be definied some event
- bindings for general use.
+ bindings for general use.
* ext/tk/lib/tk/event.rb: [bug fix] Tk.callback_break and
Tk.callback_continue don't work on MultiTkIp.
diff --git a/configure.in b/configure.in
index dbc9eb148d..ed0def7f8b 100644
--- a/configure.in
+++ b/configure.in
@@ -483,7 +483,7 @@ AC_CHECK_FUNCS(fmod killpg wait4 waitpid syscall chroot fsync getcwd eaccess\
readlink setitimer setruid seteuid setreuid setresuid\
setproctitle setrgid setegid setregid setresgid issetugid pause\
lchown lchmod getpgrp setpgrp getpgid setpgid initgroups\
- getgroups setgroups getpriority getrlimit setrlimit\
+ getgroups setgroups getpriority getrlimit setrlimit sysconf\
dlopen sigprocmask\
sigaction _setjmp setsid telldir seekdir fchmod mktime timegm\
cosh sinh tanh setuid setgid setenv unsetenv)
@@ -749,6 +749,22 @@ if test $rb_cv_huge_st_ino = yes; then
AC_DEFINE(HUGE_ST_INO)
fi
+if test "$ac_cv_func_sysconf" = yes; then
+ AC_DEFUN(RUBY_CHECK_SYSCONF, [dnl
+ AC_CACHE_CHECK([whether _SC_$1 is supported], rb_cv_have_sc_[]m4_tolower($1),
+ [AC_TRY_COMPILE([#include <unistd.h>
+ ],
+ [_SC_$1 >= 0],
+ rb_cv_have_sc_[]m4_tolower($1)=yes,
+ rb_cv_have_sc_[]m4_tolower($1)=no)
+ ])
+ if test "$rb_cv_have_sc_[]m4_tolower($1)" = yes; then
+ AC_DEFINE(HAVE__SC_$1)
+ fi
+ ])
+ RUBY_CHECK_SYSCONF(CLK_TCK)
+fi
+
case "$target_cpu" in
m68*|i?86|ia64|sparc*|alpha*) rb_cv_stack_grow_dir=-1;;
hppa*) rb_cv_stack_grow_dir=+1;;
diff --git a/process.c b/process.c
index 63741f9eda..72e5c54739 100644
--- a/process.c
+++ b/process.c
@@ -3432,6 +3432,10 @@ rb_proc_times(obj)
VALUE obj;
{
#if defined(HAVE_TIMES) && !defined(__CHECKER__)
+ const double hz =
+#ifdef HAVE__SC_CLK_TCK
+ (double)sysconf(_SC_CLK_TCK);
+#else
#ifndef HZ
# ifdef CLK_TCK
# define HZ CLK_TCK
@@ -3439,15 +3443,17 @@ rb_proc_times(obj)
# define HZ 60
# endif
#endif /* HZ */
+ HZ;
+#endif
struct tms buf;
volatile VALUE utime, stime, cutime, sctime;
times(&buf);
return rb_struct_new(S_Tms,
- utime = rb_float_new((double)buf.tms_utime / HZ),
- stime = rb_float_new((double)buf.tms_stime / HZ),
- cutime = rb_float_new((double)buf.tms_cutime / HZ),
- sctime = rb_float_new((double)buf.tms_cstime / HZ));
+ utime = rb_float_new(buf.tms_utime / hz),
+ stime = rb_float_new(buf.tms_stime / hz),
+ cutime = rb_float_new(buf.tms_cutime / hz),
+ sctime = rb_float_new(buf.tms_cstime / hz));
#else
rb_notimplement();
#endif