diff --git a/client/src/main/java/org/mvndaemon/mvnd/client/DaemonConnector.java b/client/src/main/java/org/mvndaemon/mvnd/client/DaemonConnector.java index 4a75b7c2..fd0cf499 100644 --- a/client/src/main/java/org/mvndaemon/mvnd/client/DaemonConnector.java +++ b/client/src/main/java/org/mvndaemon/mvnd/client/DaemonConnector.java @@ -364,6 +364,10 @@ public class DaemonConnector { if (maxHeapSize != null) { args.add("-Xmx" + maxHeapSize); } + String threadStackSize = parameters.threadStackSize(); + if (threadStackSize != null) { + args.add("-Xss" + threadStackSize); + } Environment.MVND_HOME.addCommandLineOption(args, mvndHome.toString()); Environment.MVND_JAVA_HOME.addCommandLineOption(args, parameters.javaHome().toString()); diff --git a/client/src/main/java/org/mvndaemon/mvnd/client/DaemonParameters.java b/client/src/main/java/org/mvndaemon/mvnd/client/DaemonParameters.java index fd1840db..26f8872c 100644 --- a/client/src/main/java/org/mvndaemon/mvnd/client/DaemonParameters.java +++ b/client/src/main/java/org/mvndaemon/mvnd/client/DaemonParameters.java @@ -231,6 +231,10 @@ public class DaemonParameters { return property(Environment.MVND_MAX_HEAP_SIZE).asString(); } + public String threadStackSize() { + return property(Environment.MVND_THREAD_STACK_SIZE).asString(); + } + public String jvmArgs() { return property(Environment.MVND_JVM_ARGS).asString(); } diff --git a/common/src/main/java/org/mvndaemon/mvnd/common/Environment.java b/common/src/main/java/org/mvndaemon/mvnd/common/Environment.java index 3c0c9db2..be96d009 100644 --- a/common/src/main/java/org/mvndaemon/mvnd/common/Environment.java +++ b/common/src/main/java/org/mvndaemon/mvnd/common/Environment.java @@ -210,6 +210,10 @@ public enum Environment { * The -Xmx value to pass to the daemon */ MVND_MAX_HEAP_SIZE("mvnd.maxHeapSize", null, "2G", OptionType.MEMORY_SIZE, Flags.DISCRIMINATING), + /** + * The -Xss value to pass to the daemon + */ + MVND_THREAD_STACK_SIZE("mvnd.threadStackSize", null, "1M", OptionType.MEMORY_SIZE, Flags.DISCRIMINATING), /** * Additional JVM args to pass to the daemon */ diff --git a/dist/src/main/distro/conf/mvnd.properties b/dist/src/main/distro/conf/mvnd.properties index 41b5516a..beae1c80 100644 --- a/dist/src/main/distro/conf/mvnd.properties +++ b/dist/src/main/distro/conf/mvnd.properties @@ -113,6 +113,11 @@ # # mvnd.maxHeapSize = 2G +# MVND_THREAD_STACK_SIZE +# JVM options for the daemon to specify the thread stack size +# +# mvnd.threadStackSize = 1M + # MVND_JVM_ARGS # Additional JVM args for the daemon #