aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/utils_cmd.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/lib/utils_cmd.c b/lib/utils_cmd.c
index e41a9821..7eb9a3a0 100644
--- a/lib/utils_cmd.c
+++ b/lib/utils_cmd.c
@@ -79,12 +79,14 @@ static pid_t *_cmd_pids = NULL;
* If that fails and the macro isn't defined, we fall back to an educated
* guess. There's no guarantee that our guess is adequate and the program
* will die with SIGSEGV if it isn't and the upper boundary is breached. */
+#define DEFAULT_MAXFD 256 /* fallback value if no max open files value is set */
+#define MAXFD_LIMIT 8192 /* upper limit of open files */
#ifdef _SC_OPEN_MAX
static long maxfd = 0;
#elif defined(OPEN_MAX)
# define maxfd OPEN_MAX
#else /* sysconf macro unavailable, so guess (may be wildly inaccurate) */
-# define maxfd 256
+# define maxfd DEFAULT_MAXFD
#endif
@@ -112,7 +114,7 @@ cmd_init (void)
if (!maxfd && (maxfd = sysconf (_SC_OPEN_MAX)) < 0) {
/* possibly log or emit a warning here, since there's no
* guarantee that our guess at maxfd will be adequate */
- maxfd = 256;
+ maxfd = DEFAULT_MAXFD;
}
#endif
@@ -120,8 +122,8 @@ cmd_init (void)
* ( e.g. on SunOS, when ulimit is set to unlimited: 2147483647 this would cause
* a segfault when following calloc is called ... ) */
- if ( maxfd > 2048 ) {
- maxfd = 2048;
+ if ( maxfd > MAXFD_LIMIT ) {
+ maxfd = MAXFD_LIMIT;
}
if (!_cmd_pids)