From bdb657edd6db1e471437d62f4642674a801ef32c Mon Sep 17 00:00:00 2001 From: Thomas Munro Date: Fri, 5 Aug 2022 09:18:34 +1200 Subject: Remove configure probe and related tests for getrlimit. getrlimit() is in SUSv2 and all targeted systems have it. Windows doesn't have it. We could just use #ifndef WIN32, but for a little more explanation about why we're making things conditional, let's retain the HAVE_GETRLIMIT macro. It's defined in port.h for Unix systems. On systems that have it, it's not necessary to test for RLIMIT_CORE, RLIMIT_STACK or RLIMIT_NOFILE macros, since SUSv2 requires those and all targeted systems have them. Also remove references to a pre-historic alternative spelling of RLIMIT_NOFILE, and coding that seemed to believe that Cygwin didn't have it. Reviewed-by: Tom Lane Reviewed-by: Andres Freund Discussion: https://postgr.es/m/CA+hUKGJ3LHeP9w5Fgzdr4G8AnEtJ=z=p6hGDEm4qYGEUX5B6fQ@mail.gmail.com --- src/backend/storage/file/fd.c | 4 ---- src/backend/tcop/postgres.c | 8 ++------ 2 files changed, 2 insertions(+), 10 deletions(-) (limited to 'src/backend') diff --git a/src/backend/storage/file/fd.c b/src/backend/storage/file/fd.c index f904f60c086..447d5a86c30 100644 --- a/src/backend/storage/file/fd.c +++ b/src/backend/storage/file/fd.c @@ -895,11 +895,7 @@ count_usable_fds(int max_to_probe, int *usable_fds, int *already_open) fd = (int *) palloc(size * sizeof(int)); #ifdef HAVE_GETRLIMIT -#ifdef RLIMIT_NOFILE /* most platforms use RLIMIT_NOFILE */ getrlimit_status = getrlimit(RLIMIT_NOFILE, &rlim); -#else /* but BSD doesn't ... */ - getrlimit_status = getrlimit(RLIMIT_OFILE, &rlim); -#endif /* RLIMIT_NOFILE */ if (getrlimit_status != 0) ereport(WARNING, (errmsg("getrlimit failed: %m"))); #endif /* HAVE_GETRLIMIT */ diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c index 078fbdb5a0c..11e802eba98 100644 --- a/src/backend/tcop/postgres.c +++ b/src/backend/tcop/postgres.c @@ -4770,7 +4770,7 @@ forbidden_in_wal_sender(char firstchar) long get_stack_depth_rlimit(void) { -#if defined(HAVE_GETRLIMIT) && defined(RLIMIT_STACK) +#if defined(HAVE_GETRLIMIT) static long val = 0; /* This won't change after process launch, so check just once */ @@ -4789,13 +4789,9 @@ get_stack_depth_rlimit(void) val = rlim.rlim_cur; } return val; -#else /* no getrlimit */ -#if defined(WIN32) || defined(__CYGWIN__) +#else /* On Windows we set the backend stack size in src/backend/Makefile */ return WIN32_STACK_RLIMIT; -#else /* not windows ... give up */ - return -1; -#endif #endif } -- cgit v1.2.3