Merge pull request #10853 from Chocobo1/limits

Adjust open file descriptor limit on startup
This commit is contained in:
Mike Tzou 2019-06-27 10:49:17 +08:00 committed by GitHub
commit a305032c39
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -33,6 +33,9 @@
#include <cstdlib> #include <cstdlib>
#include <memory> #include <memory>
#if defined(Q_OS_UNIX)
#include <sys/resource.h>
#endif
#if !defined Q_OS_WIN && !defined Q_OS_HAIKU #if !defined Q_OS_WIN && !defined Q_OS_HAIKU
#include <unistd.h> #include <unistd.h>
#elif defined Q_OS_WIN && defined DISABLE_GUI #elif defined Q_OS_WIN && defined DISABLE_GUI
@ -116,9 +119,17 @@ void displayBadArgMessage(const QString &message);
void showSplashScreen(); void showSplashScreen();
#endif // DISABLE_GUI #endif // DISABLE_GUI
#if defined(Q_OS_UNIX)
void adjustFileDescriptorLimit();
#endif
// Main // Main
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
#if defined(Q_OS_UNIX)
adjustFileDescriptorLimit();
#endif
// We must save it here because QApplication constructor may change it // We must save it here because QApplication constructor may change it
bool isOneArg = (argc == 2); bool isOneArg = (argc == 2);
@ -397,3 +408,16 @@ bool userAgreesWithLegalNotice()
return false; return false;
} }
#if defined(Q_OS_UNIX)
void adjustFileDescriptorLimit()
{
rlimit limit {};
if (getrlimit(RLIMIT_NOFILE, &limit) != 0)
return;
limit.rlim_cur = limit.rlim_max;
setrlimit(RLIMIT_NOFILE, &limit);
}
#endif