aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/backend/tcop/postgres.c13
-rw-r--r--src/include/pg_config.h.in3
-rw-r--r--src/include/rusagestub.h3
-rw-r--r--src/port/getrusage.c49
-rw-r--r--src/tools/msvc/Solution.pm1
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,