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 4a75b7c2a..fd0cf4993 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 @@ private Process startDaemonProcess(String daemonId) { 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 f80cc66a5..e0a5417b6 100644 --- a/client/src/main/java/org/mvndaemon/mvnd/client/DaemonParameters.java +++ b/client/src/main/java/org/mvndaemon/mvnd/client/DaemonParameters.java @@ -226,6 +226,10 @@ public String maxHeapSize() { 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 1d648051d..b082f6e33 100644 --- a/common/src/main/java/org/mvndaemon/mvnd/common/Environment.java +++ b/common/src/main/java/org/mvndaemon/mvnd/common/Environment.java @@ -208,6 +208,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 41b5516a6..beae1c804 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 #