From 3e27a71c711f7408032ba2f2aa25289378232264 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Wed, 10 Dec 2014 15:59:00 -0500 Subject: [PATCH] simpler approach for Apple setrlimit() compatibility issue --- libs/ardour/globals.cc | 28 +++++----------------------- 1 file changed, 5 insertions(+), 23 deletions(-) diff --git a/libs/ardour/globals.cc b/libs/ardour/globals.cc index c36748612a..1ccb169bfc 100644 --- a/libs/ardour/globals.cc +++ b/libs/ardour/globals.cc @@ -214,34 +214,16 @@ lotsa_files_please () if (getrlimit (RLIMIT_NOFILE, &rl) == 0) { +#ifdef __APPLE__ + /* See the COMPATIBILITY note on the Apple setrlimit() man page */ + rl.rlim_cur = min ((rlim_t) OPEN_MAX, rl.rlim_max); +#else rl.rlim_cur = rl.rlim_max; +#endif if (setrlimit (RLIMIT_NOFILE, &rl) != 0) { if (rl.rlim_cur == RLIM_INFINITY) { -#if __APPLE__ - /* For some reason, Apple doesn't do this the - * same way as Linux, and asking for - * RLIM_INFINITY even though that is - * rl.rlim_cur doesn't work. - * - * So try some actual large numbers in the hope - * that one of them will work. - */ - - rl.rlim_cur = 10000; - if (setrlimit (RLIMIT_NOFILE, &rl) != 0) { - rl.rlim_cur = 4096; - if (setrlimit (RLIMIT_NOFILE, &rl) != 0) { - rl.rlim_cur = 1000; - if (setrlimit (RLIMIT_NOFILE, &rl) != 0) { - error << _("Could not set system open files limit to a reasonable value. Be careful!") << endmsg; - } - } - } - info << string_compose ("Configured system open file limit to %1", rl.rlim_cur) << endmsg; -#else error << _("Could not set system open files limit to \"unlimited\"") << endmsg; -#endif } else { error << string_compose (_("Could not set system open files limit to %1"), rl.rlim_cur) << endmsg; }