File tree Expand file tree Collapse file tree 1 file changed +11
-8
lines changed Expand file tree Collapse file tree 1 file changed +11
-8
lines changed Original file line number Diff line number Diff line change @@ -1983,15 +1983,18 @@ jint os::init_2(void) {
1983
1983
log_info (os)(" os::init_2 getrlimit failed: %s" , os::strerror (errno));
1984
1984
} else {
1985
1985
nbr_files.rlim_cur = nbr_files.rlim_max ;
1986
-
1987
- #ifdef __APPLE__
1988
- // Darwin returns RLIM_INFINITY for rlim_max, but fails with EINVAL if
1989
- // you attempt to use RLIM_INFINITY. As per setrlimit(2), OPEN_MAX must
1990
- // be used instead
1991
- nbr_files.rlim_cur = MIN (OPEN_MAX, nbr_files.rlim_cur );
1992
- #endif
1993
-
1994
1986
status = setrlimit (RLIMIT_NOFILE, &nbr_files);
1987
+ #ifdef __APPLE__
1988
+ if (status != 0 && errno == EINVAL) {
1989
+ // On macOS >= 10.6 if we define _DARWIN_UNLIMITED_STREAMS or _DARWIN_C_SOURCE
1990
+ // (we define _DARWIN_C_SOURCE) we can ask for RLIM_INFINITY,
1991
+ // however, on macOS < 10.6 Darwin returns RLIM_INFINITY for rlim_max,
1992
+ // but fails with EINVAL if you attempt to use RLIM_INFINITY.
1993
+ // As per setrlimit(2), OPEN_MAX must be used instead.
1994
+ nbr_files.rlim_cur = MIN (OPEN_MAX, nbr_files.rlim_cur );
1995
+ status = setrlimit (RLIMIT_NOFILE, &nbr_files);
1996
+ }
1997
+ #endif // __APPLE__
1995
1998
if (status != 0 ) {
1996
1999
log_info (os)(" os::init_2 setrlimit failed: %s" , os::strerror (errno));
1997
2000
}
You can’t perform that action at this time.
0 commit comments