From d7c4e29d9a3b16894b68bba73c830c8837307fb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Otac=C3=ADlio?= Date: Sun, 18 Mar 2018 22:52:13 -0300 Subject: [PATCH] Fix 100% CPU usage bug when listing users under FreeBSD. --- src/server/library/sysadm-general.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/server/library/sysadm-general.cpp b/src/server/library/sysadm-general.cpp index 6ac29d9..d30c655 100644 --- a/src/server/library/sysadm-general.cpp +++ b/src/server/library/sysadm-general.cpp @@ -40,7 +40,10 @@ QString General::RunCommand(bool &success, QString command, QStringList argument if(arguments.isEmpty()){ proc.start(command); } else{ proc.start(command, arguments); } //Wait for the process to finish (but don't block the event loop) - while( !proc.waitForFinished(500) ){ QCoreApplication::processEvents(); } + while( !proc.waitForFinished(500) ){ + if(proc.state() != QProcess::Running){ break; } //somehow missed the finished signal + QCoreApplication::processEvents(); + } success = (proc.exitCode()==0); //return success/failure return QString(proc.readAllStandardOutput()); }