diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/tcop/postgres.c | 13 | ||||
-rw-r--r-- | src/include/pg_config.h.in | 3 | ||||
-rw-r--r-- | src/include/rusagestub.h | 3 | ||||
-rw-r--r-- | src/port/getrusage.c | 49 | ||||
-rw-r--r-- | src/tools/msvc/Solution.pm | 1 |
5 files changed, 13 insertions, 56 deletions
diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c index 8ba1c170f02..bdb11f430fd 100644 --- a/src/backend/tcop/postgres.c +++ b/src/backend/tcop/postgres.c @@ -32,7 +32,7 @@ #include <sys/resource.h> #endif -#ifndef HAVE_GETRUSAGE +#ifdef WIN32 #include "rusagestub.h" #endif @@ -4860,7 +4860,14 @@ ShowUsage(const char *title) (long) user.tv_usec, (long) sys.tv_sec, (long) sys.tv_usec); -#if defined(HAVE_GETRUSAGE) +#ifndef WIN32 + + /* + * The following rusage fields are not defined by POSIX, but they're + * present on all current Unix-like systems so we use them without any + * special checks. Some of these could be provided in our Windows + * emulation in src/port/getrusage.c with more work. + */ appendStringInfo(&str, "!\t%ld kB max resident size\n", #if defined(__darwin__) @@ -4896,7 +4903,7 @@ ShowUsage(const char *title) r.ru_nvcsw - Save_r.ru_nvcsw, r.ru_nivcsw - Save_r.ru_nivcsw, r.ru_nvcsw, r.ru_nivcsw); -#endif /* HAVE_GETRUSAGE */ +#endif /* !WIN32 */ /* remove trailing newline */ if (str.data[str.len - 1] == '\n') diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in index 000ed9bde27..9061f301b05 100644 --- a/src/include/pg_config.h.in +++ b/src/include/pg_config.h.in @@ -250,9 +250,6 @@ /* Define to 1 if you have the `getrlimit' function. */ #undef HAVE_GETRLIMIT -/* Define to 1 if you have the `getrusage' function. */ -#undef HAVE_GETRUSAGE - /* Define to 1 if you have the `gettimeofday' function. */ #undef HAVE_GETTIMEOFDAY diff --git a/src/include/rusagestub.h b/src/include/rusagestub.h index b887effa3e9..be26f849a59 100644 --- a/src/include/rusagestub.h +++ b/src/include/rusagestub.h @@ -15,9 +15,6 @@ #define RUSAGESTUB_H #include <sys/time.h> /* for struct timeval */ -#ifndef WIN32 -#include <sys/times.h> /* for struct tms */ -#endif #include <limits.h> /* for CLK_TCK */ #define RUSAGE_SELF 0 diff --git a/src/port/getrusage.c b/src/port/getrusage.c index 02665f4032d..2ba59ade2c3 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; } diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm index f8df6acabe5..5fa8626af7f 100644 --- a/src/tools/msvc/Solution.pm +++ b/src/tools/msvc/Solution.pm @@ -277,7 +277,6 @@ sub GenerateFiles HAVE_GETPEERUCRED => undef, HAVE_GETPWUID_R => undef, HAVE_GETRLIMIT => undef, - HAVE_GETRUSAGE => undef, HAVE_GETTIMEOFDAY => undef, HAVE_GSSAPI_GSSAPI_H => undef, HAVE_GSSAPI_H => undef, |