New upstream version 2.2
This commit is contained in:
parent
ea115afa68
commit
c845af032a
101 changed files with 4649 additions and 22969 deletions
|
@ -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,10 +114,18 @@ 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
|
||||
|
||||
/* if maxfd is unnaturally high, we force it to a lower value
|
||||
* ( e.g. on SunOS, when ulimit is set to unlimited: 2147483647 this would cause
|
||||
* a segfault when following calloc is called ... ) */
|
||||
|
||||
if ( maxfd > MAXFD_LIMIT ) {
|
||||
maxfd = MAXFD_LIMIT;
|
||||
}
|
||||
|
||||
if (!_cmd_pids)
|
||||
_cmd_pids = calloc (maxfd, sizeof (pid_t));
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue