summaryrefslogtreecommitdiff
path: root/src/port/getrusage.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/port/getrusage.c')
-rw-r--r--src/port/getrusage.c49
1 files changed, 3 insertions, 46 deletions
diff --git a/src/port/getrusage.c b/src/port/getrusage.c
index 02665f4032..2ba59ade2c 100644
--- a/src/port/getrusage.c
+++ b/src/port/getrusage.c
@@ -17,19 +17,14 @@
#include "rusagestub.h"
-/* This code works on:
- * solaris_i386
- * solaris_sparc
- * win32
- * which currently is all the supported platforms that don't have a
- * native version of getrusage(). So, if configure decides to compile
- * this file at all, we just use this version unconditionally.
+/*
+ * This code works on Windows, which is the only supported platform without a
+ * native version of getrusage().
*/
int
getrusage(int who, struct rusage *rusage)
{
-#ifdef WIN32
FILETIME starttime;
FILETIME exittime;
FILETIME kerneltime;
@@ -66,44 +61,6 @@ getrusage(int who, struct rusage *rusage)
li.QuadPart /= 10L; /* Convert to microseconds */
rusage->ru_utime.tv_sec = li.QuadPart / 1000000L;
rusage->ru_utime.tv_usec = li.QuadPart % 1000000L;
-#else /* all but WIN32 */
-
- struct tms tms;
- int tick_rate = CLK_TCK; /* ticks per second */
- clock_t u,
- s;
-
- if (rusage == (struct rusage *) NULL)
- {
- errno = EFAULT;
- return -1;
- }
- if (times(&tms) < 0)
- {
- /* errno set by times */
- return -1;
- }
- switch (who)
- {
- case RUSAGE_SELF:
- u = tms.tms_utime;
- s = tms.tms_stime;
- break;
- case RUSAGE_CHILDREN:
- u = tms.tms_cutime;
- s = tms.tms_cstime;
- break;
- default:
- errno = EINVAL;
- return -1;
- }
-#define TICK_TO_SEC(T, RATE) ((T)/(RATE))
-#define TICK_TO_USEC(T,RATE) (((T)%(RATE)*1000000)/RATE)
- rusage->ru_utime.tv_sec = TICK_TO_SEC(u, tick_rate);
- rusage->ru_utime.tv_usec = TICK_TO_USEC(u, tick_rate);
- rusage->ru_stime.tv_sec = TICK_TO_SEC(s, tick_rate);
- rusage->ru_stime.tv_usec = TICK_TO_USEC(u, tick_rate);
-#endif /* WIN32 */
return 0;
}