summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
fe1f35a)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@7298
48e7efb5-ca39-0410-a469-
dd3cf9ba447f
AC_LIBTOOL_WIN32_DLL
AC_PROG_LIBTOOL
AC_LIBTOOL_WIN32_DLL
AC_PROG_LIBTOOL
+SIMGRID_DEP=""
+SMPI_DEP=""
+GRAS_DEP=""
+
+
###############
## SVN version check
##
###############
## SVN version check
##
dnl GNU systems before POSIX2008 need the _GNU_SOURCE definition to find getline (and simgrid does pass this)
AC_MSG_CHECKING(a usable getline)
dnl GNU systems before POSIX2008 need the _GNU_SOURCE definition to find getline (and simgrid does pass this)
AC_MSG_CHECKING(a usable getline)
AC_DEFINE(SIMGRID_NEED_GETLINE, 1, enable the getline replacement)
AC_MSG_RESULT(not found (activating internal implementation))
])
AC_DEFINE(SIMGRID_NEED_GETLINE, 1, enable the getline replacement)
AC_MSG_RESULT(not found (activating internal implementation))
])
+
+dnl AC_MSG_CHECKING(POSIX timer functions)
+AC_CHECK_LIB(rt, [clock_gettime], [
+ AC_DEFINE(HAVE_POSIX_GETTIME, 1, POSIX timer functions were found)
+ SIMGRID_DEP="$SIMGRID_DEP -lrt"
+ GRAS_DEP="$GRAS_DEP -lrt"
+ ])
+
# check for a working snprintf (or use xbt/snprintf.c, which comes from http://www.ijs.si/software/snprintf/)
AC_FUNC_SNPRINTF
# check for asprintf function familly (or request the replacements from xbt/snprintf.c)
# check for a working snprintf (or use xbt/snprintf.c, which comes from http://www.ijs.si/software/snprintf/)
AC_FUNC_SNPRINTF
# check for asprintf function familly (or request the replacements from xbt/snprintf.c)
SG_CONFIGURE_PART(Checking extra libraries dependencies...)
SG_CONFIGURE_PART(Checking extra libraries dependencies...)
-SIMGRID_DEP=""
-SMPI_DEP=""
-GRAS_DEP=""
-
if test xpthread=xyes ; then
# if the pthreads are usable
if test "x$with_context" = "xpthread" ; then
# if we use them to implement the xbt_context
if test xpthread=xyes ; then
# if the pthreads are usable
if test "x$with_context" = "xpthread" ; then
# if we use them to implement the xbt_context
- SIMGRID_DEP="-lpthread"
+ SIMGRID_DEP="$SIMGRID_DEP -lpthread"
fi
# we need them in any case for the gras lib (which is multithreaded), but on windows (of course)
if test "x$with_context" != "xwindows" ; then
fi
# we need them in any case for the gras lib (which is multithreaded), but on windows (of course)
if test "x$with_context" != "xwindows" ; then
+ GRAS_DEP="$GRAS_DEP -lpthread"
fi
fi
AC_SEARCH_LIBS([connect],[socket],[],[],[]) # need -lsocket on solaris
fi
fi
AC_SEARCH_LIBS([connect],[socket],[],[],[]) # need -lsocket on solaris
-#ifdef HAVE_GETTIMEOFDAY
+#ifdef HAVE_POSIX_GETTIME
+ struct timespec start, stop;
+#elif defined(HAVE_GETTIMEOFDAY)
struct timeval start, stop;
#else
unsigned long int start, stop;
#endif
};
struct timeval start, stop;
#else
unsigned long int start, stop;
#endif
};
-xbt_os_timer_t xbt_os_timer_new(void)
-{
+xbt_os_timer_t xbt_os_timer_new(void) {
return xbt_new0(struct s_xbt_os_timer, 1);
}
return xbt_new0(struct s_xbt_os_timer, 1);
}
-void xbt_os_timer_free(xbt_os_timer_t timer)
-{
+void xbt_os_timer_free(xbt_os_timer_t timer) {
-void xbt_os_timer_start(xbt_os_timer_t timer)
-{
-#ifdef HAVE_GETTIMEOFDAY
+void xbt_os_timer_start(xbt_os_timer_t timer) {
+#ifdef HAVE_POSIX_GETTIME
+ clock_gettime(CLOCK_PROCESS_CPUTIME_ID,&(timer->start));
+#elif defined(HAVE_GETTIMEOFDAY)
gettimeofday(&(timer->start), NULL);
#else
timer->start = (unsigned long int) (time(NULL));
#endif
}
gettimeofday(&(timer->start), NULL);
#else
timer->start = (unsigned long int) (time(NULL));
#endif
}
-void xbt_os_timer_stop(xbt_os_timer_t timer)
-{
-#ifdef HAVE_GETTIMEOFDAY
+void xbt_os_timer_stop(xbt_os_timer_t timer) {
+#ifdef HAVE_POSIX_GETTIME
+ clock_gettime(CLOCK_PROCESS_CPUTIME_ID,&(timer->stop));
+#elif defined(HAVE_GETTIMEOFDAY)
gettimeofday(&(timer->stop), NULL);
#else
timer->stop = (unsigned long int) (time(NULL));
gettimeofday(&(timer->stop), NULL);
#else
timer->stop = (unsigned long int) (time(NULL));
double xbt_os_timer_elapsed(xbt_os_timer_t timer)
{
double xbt_os_timer_elapsed(xbt_os_timer_t timer)
{
-#ifdef HAVE_GETTIMEOFDAY
+#ifdef HAVE_POSIX_GETTIME
+ return ((double) timer->stop.tv_sec) - ((double) timer->start.tv_sec) +
+ ((((double) timer->stop.tv_nsec) -
+ ((double) timer->start.tv_nsec)) / 1e-9);
+#elif defined(HAVE_GETTIMEOFDAY)
return ((double) timer->stop.tv_sec) - ((double) timer->start.tv_sec) +
((((double) timer->stop.tv_usec) -
((double) timer->start.tv_usec)) / 1000000.0);
return ((double) timer->stop.tv_sec) - ((double) timer->start.tv_sec) +
((((double) timer->stop.tv_usec) -
((double) timer->start.tv_usec)) / 1000000.0);