[Libreoffice-commits] online.git: 2 commits - loolwsd/LOOLWSD.cpp

Tor Lillqvist tml at collabora.com
Mon Apr 4 08:41:02 UTC 2016


 loolwsd/LOOLWSD.cpp |   13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

New commits:
commit 383eb5c666a143d90f2addc463d717da333e595f
Author: Tor Lillqvist <tml at collabora.com>
Date:   Mon Apr 4 11:04:34 2016 +0300

    Don't ask broker to fork a non-positive number of children
    
    I easily got the thing into a state where it kept forking new
    processes without limit even if no client was doing anything. The log
    output contained lines like:
    
    wsd-09526-04 00:00:48.302029 [client_ws_001b ] MasterToBroker: spawn -1
    
    brk-09528-00 00:00:48.279945 [loolbroker     ] Broker command: [spawn -1].
    
    brk-09528-00 00:00:48.279964 [loolbroker     ] Spawning -1 childs per request.
    brk-09528-00 00:00:48.279974 [loolbroker     ] Creating -1 new child.
    
    This fixes that, but there are still several issues remaining.

diff --git a/loolwsd/LOOLWSD.cpp b/loolwsd/LOOLWSD.cpp
index 1eb2955..1798d32 100644
--- a/loolwsd/LOOLWSD.cpp
+++ b/loolwsd/LOOLWSD.cpp
@@ -192,9 +192,12 @@ std::shared_ptr<ChildProcess> getNewChild()
         balance -= available - 1;
     }
 
-    const std::string aMessage = "spawn " + std::to_string(balance) + "\n";
-    Log::debug("MasterToBroker: " + aMessage.substr(0, aMessage.length() - 1));
-    IoUtil::writeFIFO(LOOLWSD::BrokerWritePipe, aMessage);
+    if (balance > 0)
+    {
+        const std::string aMessage = "spawn " + std::to_string(balance) + "\n";
+        Log::debug("MasterToBroker: " + aMessage.substr(0, aMessage.length() - 1));
+        IoUtil::writeFIFO(LOOLWSD::BrokerWritePipe, aMessage);
+    }
 
     if (available > 0)
     {
commit 9a456770f1bd5c855bed1e5c237b7f61a0fc321c
Author: Tor Lillqvist <tml at collabora.com>
Date:   Mon Apr 4 10:57:44 2016 +0300

    Why 'signed' when 'int' is much simpler?

diff --git a/loolwsd/LOOLWSD.cpp b/loolwsd/LOOLWSD.cpp
index 6f28356..1eb2955 100644
--- a/loolwsd/LOOLWSD.cpp
+++ b/loolwsd/LOOLWSD.cpp
@@ -181,8 +181,8 @@ std::shared_ptr<ChildProcess> getNewChild()
 {
     std::unique_lock<std::mutex> lock(newChildsMutex);
 
-    const signed available = newChilds.size();
-    signed balance = LOOLWSD::NumPreSpawnedChildren;
+    const int available = newChilds.size();
+    int balance = LOOLWSD::NumPreSpawnedChildren;
     if (available == 0)
     {
         Log::error("No available child. Sending spawn request to Broker and failing.");


More information about the Libreoffice-commits mailing list