ruby-changes:4844
From: ko1@a...
Date: Fri, 9 May 2008 19:17:29 +0900 (JST)
Subject: [ruby-changes:4844] matz - Ruby:r16338 (trunk): * thread.c (timeofday): use monotonic clock. based on a patch
matz 2008-05-09 19:17:15 +0900 (Fri, 09 May 2008) New Revision: 16338 Modified files: trunk/ChangeLog trunk/thread.c Log: * thread.c (timeofday): use monotonic clock. based on a patch from zimbatm <zimbatm@o...> in [ruby-core:16627]. http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=16338&r2=16337&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/thread.c?r1=16338&r2=16337&diff_format=u Index: ChangeLog =================================================================== --- ChangeLog (revision 16337) +++ ChangeLog (revision 16338) @@ -1,3 +1,8 @@ +Fri May 9 19:16:00 2008 Yukihiro Matsumoto <matz@r...> + + * thread.c (timeofday): use monotonic clock. based on a patch + from zimbatm <zimbatm@o...> in [ruby-core:16627]. + Fri May 9 07:47:07 2008 Yukihiro Matsumoto <matz@r...> * cont.c (cont_restore_0): dynamic stack direction code should be Index: thread.c =================================================================== --- thread.c (revision 16337) +++ thread.c (revision 16338) @@ -674,9 +674,18 @@ static double timeofday(void) { - struct timeval tv; - gettimeofday(&tv, NULL); - return (double)tv.tv_sec + (double)tv.tv_usec * 1e-6; +#if defined(HAVE_CLOCK_GETTIME) && defined(CLOCK_MONOTONIC) + struct timespec tp; + + if (clock_gettime(CLOCK_MONOTONIC, &tp) == 0) { + return (double)tp.tv_sec + (double)tp.tv_nsec * 1e-9; + } else +#endif + { + struct timeval tv; + gettimeofday(&tv, NULL); + return (double)tv.tv_sec + (double)tv.tv_usec * 1e-6; + } } static void -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/