*
* ---------------------------------------------------------------------------*/
-#include "PosixSource.h"
+// Not POSIX, due to use of ru_majflt in getPageFaults()
+// #include "PosixSource.h"
+
#include "Rts.h"
#include "GetTime.h"
#error No implementation for getProcessCPUTime() available.
#endif
-#if (defined(HAVE_GETTIMEOFDAY) && defined(HAVE_GETRUSAGE) && !irix_HOST_OS)
+#if defined(HAVE_GETTIMEOFDAY) && defined(HAVE_GETRUSAGE) && !irix_HOST_OS
// we'll implement getProcessCPUTime() and getProcessElapsedTime()
// separately, using getrusage() and gettimeofday() respectively
Ticks getThreadCPUTime(void)
{
-#ifdef HAVE_CLOCK_GETTIME
+#if defined(HAVE_CLOCK_GETTIME) && defined(CLOCK_THREAD_CPUTIME_ID)
// clock_gettime() gives us per-thread CPU time. It isn't
// reliable on Linux, but it's the best we have.
struct timespec ts;
clock_gettime(CLOCK_THREAD_CPUTIME_ID, &ts);
return (ts.tv_sec * TICKS_PER_SECOND +
- ts.tv_nsec / (1000000000/TICKS_PER_SECOND));
+ ((Ticks)ts.tv_nsec * TICKS_PER_SECOND) / 1000000000);
#else
return getProcessCPUTime();
#endif