RFR: 8374153: Add a MAX_COMPILE_THREADS gradle property to limit number of threads

Kevin Rushforth kcr at openjdk.org
Fri Dec 19 18:34:50 UTC 2025


This PR adds a new `MAX_COMPILE_THREADS` gradle property to to limit the number of build-time parallel compilation threads to the smaller of this property and the number of avialable processors.

Our gradle build spawns up to `NUM_COMPILE_THREADS` compilation tasks in parallel when building native libraries. By default, `NUM_COMPILE_THREADS` is set to the value returned by `Runtime.getRuntime().availableProcessors()`. That value can be overridden on the command line by setting the `NUM_COMPILE_THREADS` gradle property. We need a way to clamp `NUM_COMPILE_THREADS` at some maximum value without the caller having to compute it.

The change in `build.gradle` is simple:

* Define a new `MAX_COMPILE_THREADS` gradle property, which will default to 0 (meaning unlimited) for compatibility with current behavior.

* Set the default value of `NUM_COMPILE_THREADS` as follows:


    NUM_COMPILE_THREADS = MAX_COMPILE_THREADS > 0
                        ? Math.min(MAX_COMPILE_THREADS, availableProcessors)
                        : availableProcessors(


This will allow a test scripts that runs on a number of different platforms to clamp to a maximum value without having to use jshell or similar to implement `Math.min(MAX_COMPILE_THREADS, Runtime.getRuntime().availableProcessors())` in the script.

We have a practical need for this in our headful test systems, several of which report a higher number of processors than they can effectively support. Without clamping, the build will either run slower (due to too much swapping) or fail altogether when building WebKit.

-------------

Commit messages:
 - 8374153: Add a MAX_COMPILE_THREADS gradle property to limit number of threads

Changes: https://git.openjdk.org/jfx/pull/2014/files
  Webrev: https://webrevs.openjdk.org/?repo=jfx&pr=2014&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8374153
  Stats: 23 lines in 2 files changed: 20 ins; 0 del; 3 mod
  Patch: https://git.openjdk.org/jfx/pull/2014.diff
  Fetch: git fetch https://git.openjdk.org/jfx.git pull/2014/head:pull/2014

PR: https://git.openjdk.org/jfx/pull/2014


More information about the openjfx-dev mailing list