X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/3b013fc09cb58be09f9f8d3f3a8161cb92bdbb84..ab1a94e98438ed2d29533aca9e613d667237c3d0:/src/smpi/smpi_bench.cpp diff --git a/src/smpi/smpi_bench.cpp b/src/smpi/smpi_bench.cpp index dfc02f1424..e9b4773355 100644 --- a/src/smpi/smpi_bench.cpp +++ b/src/smpi/smpi_bench.cpp @@ -307,6 +307,13 @@ int smpi_usleep(useconds_t usecs) return static_cast(private_sleep(static_cast(usecs) / 1000000.0)); } +#if _POSIX_TIMERS > 0 +int smpi_nanosleep(const struct timespec *tp, struct timespec * t) +{ + return static_cast(private_sleep(static_cast(tp->tv_sec + tp->tv_nsec / 1000000000.0))); +} +#endif + int smpi_gettimeofday(struct timeval *tv, void* tz) { double now; @@ -324,6 +331,22 @@ int smpi_gettimeofday(struct timeval *tv, void* tz) return 0; } +#if _POSIX_TIMERS > 0 +int smpi_clock_gettime(clockid_t clk_id, struct timespec *tp) +{ + //there is only one time in SMPI, so clk_id is ignored. + double now; + smpi_bench_end(); + now = SIMIX_get_clock(); + if (tp) { + tp->tv_sec = static_cast(now); + tp->tv_nsec = static_cast((now - tp->tv_sec) * 1e9); + } + smpi_bench_begin(); + return 0; +} +#endif + extern double sg_surf_precision; unsigned long long smpi_rastro_resolution (void) {