loolwsd/LOOLWSD.cpp      |    7 +++++++
 loolwsd/loolwsd.xml.in   |    5 +++++
 loolwsd/test/Makefile.am |    2 ++
 3 files changed, 14 insertions(+)

New commits:
commit e4de35737c6f6396a92ab02f599a4777e9547c55
Author: Ashod Nakashian <ashod.nakash...@collabora.co.uk>
Date:   Wed Jun 15 18:46:13 2016 -0400

    loolwsd: max_concurrency setting added
    
    Change-Id: Iae3789d26ed2e1aba3806a6f99511fa6c7097988
    (cherry picked from commit f7587443721c66b0cbf2243ae00d799bfa8c6891)
    Reviewed-on: https://gerrit.libreoffice.org/26509
    Reviewed-by: Ashod Nakashian <ashnak...@gmail.com>
    Tested-by: Ashod Nakashian <ashnak...@gmail.com>

diff --git a/loolwsd/LOOLWSD.cpp b/loolwsd/LOOLWSD.cpp
index 192c332..1e27187 100644
--- a/loolwsd/LOOLWSD.cpp
+++ b/loolwsd/LOOLWSD.cpp
@@ -22,6 +22,7 @@
 #include <sys/wait.h>
 
 #include <time.h>
+#include <stdlib.h>
 
 #include <cassert>
 #include <condition_variable>
@@ -1256,6 +1257,12 @@ void LOOLWSD::initialize(Application& self)
         NumPreSpawnedChildren = config().getUInt("num_prespawn_children", 1);
     }
 
+    const auto maxConcurrency = 
config().getInt("per_document.max_concurrency");
+    if (maxConcurrency > 0)
+    {
+        setenv("MAX_CONCURRENCY", std::to_string(maxConcurrency).c_str(), 1);
+    }
+
     StorageBase::initialize();
 
     ServerApplication::initialize(self);
diff --git a/loolwsd/loolwsd.xml.in b/loolwsd/loolwsd.xml.in
index cb524a8..96c80dc 100644
--- a/loolwsd/loolwsd.xml.in
+++ b/loolwsd/loolwsd.xml.in
@@ -1,5 +1,7 @@
 <config>
 
+    <!-- Note: 'default' attributes are used to document a setting's default 
value as well as to use as fallback. -->
+
     <tile_cache_path desc="Path to a directory where to keep the tile cache." 
type="path" relative="false" default="@LOOLWSD_CACHEDIR@"></tile_cache_path>
     <sys_template_path desc="Path to a template tree with shared libraries etc 
to be used as source for chroot jails for child processes." type="path" 
relative="true" default="systemplate"></sys_template_path>
     <lo_template_path desc="Path to a LibreOffice installation tree to be 
copied (linked) into the jails for child processes. Should be on the same file 
system as systemplate." type="path" relative="false" 
default="/opt/collaboraoffice5.0"></lo_template_path>
@@ -10,6 +12,9 @@
     <file_server_root_path desc="Path to the directory that should be 
considered root for the file server. This should be the directory containing 
loleaflet." type="path" relative="true" 
default="../loleaflet/../"></file_server_root_path>
 
     <num_prespawn_children desc="Number of child processes to keep started in 
advance and waiting for new clients." type="uint" 
default="1">1</num_prespawn_children>
+    <per_document desc="Document-specific settings, including LO Core 
settings.">
+        <max_concurrency desc="The maximum number of threads to use while 
processing a document." type="uint" default="4">4</max_concurrency>
+    </per_document>
 
     <loleaflet_html desc="Allows UI customization by replacing the single 
endpoint of loleaflet.html" type="string" 
default="loleaflet.html">loleaflet.html</loleaflet_html>
 
diff --git a/loolwsd/test/Makefile.am b/loolwsd/test/Makefile.am
index c36cc2a..24c350c 100644
--- a/loolwsd/test/Makefile.am
+++ b/loolwsd/test/Makefile.am
@@ -1,3 +1,5 @@
+# Cap threads pools to 4.
+export MAX_CONCURRENCY=4
 AUTOMAKE_OPTION = serial-tests
 
 check_PROGRAMS = test
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to