summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2009-05-22 01:31:56 +0200
committerLennart Poettering <lennart@poettering.net>2009-05-22 01:31:56 +0200
commite2aba1521a48a2be42e46e741b0eb7f8b67cae39 (patch)
treefdd1a6636d01f8c94d6fe73979b5103b6c543f55 /src
parentce3fbb5268b68681b86e58eec8bd88c41bc393c9 (diff)
core-util: fall back to sysconf(_SC_OPEN_MAX) to find maximum file descriptor
Diffstat (limited to 'src')
-rw-r--r--src/pulsecore/core-util.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/pulsecore/core-util.c b/src/pulsecore/core-util.c
index 4658eb52..d4956fb8 100644
--- a/src/pulsecore/core-util.c
+++ b/src/pulsecore/core-util.c
@@ -2235,7 +2235,7 @@ int pa_close_all(int except_fd, ...) {
int pa_close_allv(const int except_fds[]) {
struct rlimit rl;
- int fd;
+ int maxfd, fd;
int saved_errno;
#ifdef __linux__
@@ -2302,10 +2302,12 @@ int pa_close_allv(const int except_fds[]) {
#endif
- if (getrlimit(RLIMIT_NOFILE, &rl) < 0)
- return -1;
+ if (getrlimit(RLIMIT_NOFILE, &rl) >= 0)
+ maxfd = (int) rl.rlim_max;
+ else
+ maxfd = sysconf(_SC_OPEN_MAX);
- for (fd = 3; fd < (int) rl.rlim_max; fd++) {
+ for (fd = 3; fd < maxfd; fd++) {
int i;
pa_bool_t found;