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
#