gnugo-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gnugo-devel] ncurses and gg_cputime


From: Teun Burgers
Subject: [gnugo-devel] ncurses and gg_cputime
Date: Fri, 19 Oct 2001 22:31:07 +0200

This patch aims to complete the gg_cputime
implementation and configuration for ncurses/{term,curses}.h

- improved configuration for ncurses/{term,curses}.h
- improvements to gg_cputime

Teun
Index: configure.in
===================================================================
RCS file: /cvsroot/gnugo/gnugo/configure.in,v
retrieving revision 1.15
diff -u -r1.15 configure.in
--- configure.in        2001/10/18 22:08:27     1.15
+++ configure.in        2001/10/19 20:23:43
@@ -110,6 +110,22 @@
 AC_CHECK_HEADERS(unistd.h sys/time.h sys/times.h)
 AC_CHECK_HEADERS(curses.h term.h ncurses/curses.h ncurses/term.h)
 
+if test "$ac_cv_header_curses_h" = "yes";then
+   curses_header="curses.h"
+elif test "$ac_cv_header_ncurses_curses_h" = "yes";then
+   curses_header="ncurses/curses.h"
+else
+   curses_header="no"
+fi
+
+if test "$ac_cv_header_term_h" = "yes";then
+   term_header="term.h"
+elif test "$ac_cv_header_ncurses_term_h" = "yes";then
+   term_header="ncurses/term.h"
+else
+   term_header="no"
+fi
+
 AC_PATH_PROG(perl, perl)
 
 AC_CHECK_SIZEOF(int)
@@ -185,7 +201,7 @@
 AH_TEMPLATE([HAVE_CURSES_ARROWS],
 [Define if the curses headers defines  KEY_{UP,DOWN,LEFT,RIGHT}])
 
-if test "$ac_cv_header_curses_h" = "yes" -a "$ac_cv_mingw32" = "no";then
+if test "$curses_header" != "no";then
   AC_SEARCH_LIBS(initscr,ncurses curses pdcurses termcap terminfo termlib)
   if test "$ac_cv_search_initscr" != "no";then
     AC_DEFINE(CURSES)
@@ -193,7 +209,7 @@
     AC_CACHE_CHECK(
        [for KEY_UP],
        gnugo_cv_decl_key_up,
-       AC_TRY_COMPILE([#include <curses.h>],
+       AC_TRY_COMPILE([#include <$curses_header>],
                [int c=KEY_UP],
                gnugo_cv_decl_key_up="yes",
                gnugo_cv_decl_key_up="no")
@@ -223,7 +239,7 @@
   dnl make sure that both curses.h and term.h are available
   dnl FIXME PRE3.0: better to actually figure out here what headers
   dnl are really required
-  if test "$ac_cv_header_term_h$ac_cv_header_curses_h" = "yesyes" ; then
+  if test "$term_header" != "no" -a "$curses_header" != "no" ; then
 
     dnl check for a working termcap library
     AC_SEARCH_LIBS(tparm,ncurses curses pdcurses termcap terminfo termlib)
Index: utils/gg_utils.c
===================================================================
RCS file: /cvsroot/gnugo/gnugo/utils/gg_utils.c,v
retrieving revision 1.11
diff -u -r1.11 gg_utils.c
--- utils/gg_utils.c    2001/10/18 22:08:27     1.11
+++ utils/gg_utils.c    2001/10/19 20:23:50
@@ -266,28 +266,30 @@
   return VERSION;
 }
 
-/* return cputime used in mili secs */
+/* return cputime used in secs */
 
-int gg_cputime(void)
+double gg_cputime(void)
 {
 #if HAVE_SYS_TIMES_H && HAVE_TIMES
     struct tms t;
-    times(&t);
-    return t.tms_utime + t.tms_stime + t.tms_cutime + t.tms_cstime;
+    return times(&t) / ((double) CLOCKS_PER_SEC);
 #elif defined(WIN32)
     FILETIME creationTime, exitTime, kernelTime, userTime;
     ULARGE_INTEGER uKernelTime,uUserTime,uElapsedTime;
     unsigned long ulElapsedTime;
-    UNUSED(s);
-    GetProcessTimes(GetCurrentProcess(), &creationTime, &exitTime, 
&kernelTime, &userTime);
+    GetProcessTimes(GetCurrentProcess(), &creationTime, &exitTime,
+                    &kernelTime, &userTime);
     uKernelTime.LowPart = kernelTime.dwLowDateTime;
     uKernelTime.HighPart = kernelTime.dwHighDateTime;
     uUserTime.LowPart = userTime.dwLowDateTime;
     uUserTime.HighPart = userTime.dwHighDateTime;
     uElapsedTime.QuadPart = uKernelTime.QuadPart + uUserTime.QuadPart;
-    ulElapsedTime = (unsigned long)(uElapsedTime.QuadPart / 10000); /* convert 
to milliseconds: */
     /*_ASSERTE(0 && "Debug Times");*/
-    return ulElapsedTime;
+    /* convert from multiples of 100nanosecs to seconds: */
+    return uElapsedTime.QuadPart * 1.e-7;
+#else
+    /* return wall clock seconds */
+    return gg_gettimeofday();
 #endif
 }
 
Index: utils/gg_utils.h
===================================================================
RCS file: /cvsroot/gnugo/gnugo/utils/gg_utils.h,v
retrieving revision 1.5
diff -u -r1.5 gg_utils.h
--- utils/gg_utils.h    2001/10/05 20:03:59     1.5
+++ utils/gg_utils.h    2001/10/19 20:23:50
@@ -61,6 +61,7 @@
 
 int gg_gettimeofday2(struct timeval *tv, void *p);
 double gg_gettimeofday(void);
+double gg_cputime(void);
 
 const char *gg_version(void);
 

reply via email to

[Prev in Thread] Current Thread [Next in Thread]