Commit a96a79ea authored by Jan Thewes's avatar Jan Thewes Committed by Stephane Nicoll

Check for multiple processors in OnClassCondition

See gh-16115
parent 9da20b7e
......@@ -49,6 +49,25 @@ class OnClassCondition extends FilteringSpringBootCondition {
// Split the work and perform half in a background thread. Using a single
// additional thread seems to offer the best performance. More threads make
// things worse
if (Runtime.getRuntime().availableProcessors() > 1) {
return resolveOutcomesThreaded(autoConfigurationClasses,
autoConfigurationMetadata);
}
else {
return resolveOutcomes(autoConfigurationClasses, autoConfigurationMetadata);
}
}
private ConditionOutcome[] resolveOutcomes(String[] autoConfigurationClasses,
AutoConfigurationMetadata autoConfigurationMetadata) {
OutcomesResolver outcomesResolver = createOutcomesResolver(
autoConfigurationClasses, 0, autoConfigurationClasses.length,
autoConfigurationMetadata);
return outcomesResolver.resolveOutcomes();
}
private ConditionOutcome[] resolveOutcomesThreaded(String[] autoConfigurationClasses,
AutoConfigurationMetadata autoConfigurationMetadata) {
int split = autoConfigurationClasses.length / 2;
OutcomesResolver firstHalfResolver = createOutcomesResolver(
autoConfigurationClasses, 0, split, autoConfigurationMetadata);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment