[Libreoffice-commits] online.git: 3 commits - loolwsd/LOOLBroker.cpp loolwsd/Util.cpp loolwsd/Util.hpp
Tor Lillqvist
tml at collabora.com
Tue Mar 1 14:50:32 UTC 2016
loolwsd/LOOLBroker.cpp | 8 ++++----
loolwsd/Util.cpp | 3 +++
loolwsd/Util.hpp | 8 ++++----
3 files changed, 11 insertions(+), 8 deletions(-)
New commits:
commit dc305b2b087a436bd612a9dd24fa4c407e7a1db1
Author: Tor Lillqvist <tml at collabora.com>
Date: Tue Mar 1 16:43:39 2016 +0200
Don't confuse Poco::Util::Application::ExitCode and EXIT_SUCCESS/FAILURE
The getChildStatus() and getSignalStatus() functions returned the
latter, still the returned values were compared against
Poco::Util::Application::EXIT_OK. (Sure, both Poco's
Application::EXIT_SUCCESS and stdlib.h's EXIT_OK are zero, but that
doesn't mean one should mix them up.)
Also add two comments pondering the meaning of the code.
diff --git a/loolwsd/LOOLBroker.cpp b/loolwsd/LOOLBroker.cpp
index 0269866..5718304 100644
--- a/loolwsd/LOOLBroker.cpp
+++ b/loolwsd/LOOLBroker.cpp
@@ -809,7 +809,7 @@ int main(int argc, char** argv)
Log::info("loolbroker is ready.");
- int childExitCode = Application::EXIT_OK;
+ int childExitCode = EXIT_SUCCESS;
unsigned timeoutCounter = 0;
while (!TerminationFlag)
{
@@ -876,7 +876,7 @@ int main(int argc, char** argv)
// No child processes
if (errno == ECHILD)
{
- if (childExitCode == Application::EXIT_OK)
+ if (childExitCode == EXIT_SUCCESS)
{
Log::warn("Warn: last child exited successfully, fork new one.");
++forkCounter;
@@ -890,7 +890,7 @@ int main(int argc, char** argv)
}
}
- if (forkCounter > 0 && childExitCode == Application::EXIT_OK)
+ if (forkCounter > 0 && childExitCode == EXIT_SUCCESS)
{
std::lock_guard<std::recursive_mutex> lock(forkMutex);
@@ -917,7 +917,7 @@ int main(int argc, char** argv)
if (timeoutCounter++ == INTERVAL_PROBES)
{
timeoutCounter = 0;
- childExitCode = Application::EXIT_OK;
+ childExitCode = EXIT_SUCCESS;
sleep(MAINTENANCE_INTERVAL);
}
}
diff --git a/loolwsd/Util.cpp b/loolwsd/Util.cpp
index fab7a06..05d8032 100644
--- a/loolwsd/Util.cpp
+++ b/loolwsd/Util.cpp
@@ -496,6 +496,7 @@ namespace Util
retVal = EXIT_SUCCESS;
break;
+ // Why are other non-zero exit codes interpreted as success?
default:
retVal = EXIT_SUCCESS;
break;
@@ -522,6 +523,8 @@ namespace Util
retVal = EXIT_FAILURE;
break;
+ // Why are other signals treated as success? Will this function ever be called when a
+ // child was *not* terminated by a signal?
default:
retVal = EXIT_SUCCESS;
break;
diff --git a/loolwsd/Util.hpp b/loolwsd/Util.hpp
index b2e3840..481fe3e 100644
--- a/loolwsd/Util.hpp
+++ b/loolwsd/Util.hpp
@@ -116,7 +116,9 @@ namespace Util
void setTerminationSignals();
void setFatalSignals();
+ /// Returns EXIT_SUCCESS or EXIT_FAILURE from <stdlib.h>
int getChildStatus(const int code);
+ /// Returns EXIT_SUCCESS or EXIT_FAILURE from <stdlib.h>
int getSignalStatus(const int code);
void requestTermination(const Poco::Process::PID& pid);
commit f560c644714512cd0fe5ef35a093999bb522b32c
Author: Tor Lillqvist <tml at collabora.com>
Date: Tue Mar 1 16:34:32 2016 +0200
Document where LOOLExitCode comes from
diff --git a/loolwsd/Util.hpp b/loolwsd/Util.hpp
index a3c95de..b2e3840 100644
--- a/loolwsd/Util.hpp
+++ b/loolwsd/Util.hpp
@@ -24,6 +24,9 @@
#define LOK_USE_UNSTABLE_API
#include <LibreOfficeKit/LibreOfficeKitEnums.h>
+// This is an odd mix of the EExitCodes enum in LibreOffice's desktop/source/inc/exithelper.h and
+// then EX_SOFTWARE (= 70) from the (BSD origin) <sysexits.h>.
+
enum class LOOLExitCode
{
LOOL_NO_ERROR = 0,
commit 248703c6f7d04da47cc3c4742896ff1d010677c1
Author: Tor Lillqvist <tml at collabora.com>
Date: Tue Mar 1 16:28:56 2016 +0200
Bin leftover declaration of variable that is not defined anywhere
diff --git a/loolwsd/Util.hpp b/loolwsd/Util.hpp
index 19eaffe..a3c95de 100644
--- a/loolwsd/Util.hpp
+++ b/loolwsd/Util.hpp
@@ -24,9 +24,6 @@
#define LOK_USE_UNSTABLE_API
#include <LibreOfficeKit/LibreOfficeKitEnums.h>
-// Possible states of LOOL processes.
-enum class LOOLState { LOOL_RUNNING, LOOL_STOPPING, LOOL_ABNORMAL };
-
enum class LOOLExitCode
{
LOOL_NO_ERROR = 0,
@@ -42,8 +39,6 @@ enum class LOOLExitCode
LOOL_EXIT_SOFTWARE = 70
};
-extern volatile LOOLState TerminationState;
-
/// Flag to stop pump loops.
extern volatile bool TerminationFlag;
More information about the Libreoffice-commits
mailing list