Use at minimum 2 threads for Data fixers
Per MC-138093 comments, ForkJoinPool uses unlimited threads if parallelism is ever 1. A 2 core machine will end up with 1 with the change I had previously made, so bumped the min to 2 so we will never trigger the unlimited thread situation. This aligns the min back with Spigot, but allows use of more threads on systems with more cores.
This commit is contained in:
parent
f50977c5c4
commit
0f455f00ed
|
@ -13,7 +13,7 @@ index 7ac07ac07ac0..7ac07ac07ac0 100644
|
||||||
a(datafixerbuilder);
|
a(datafixerbuilder);
|
||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
- ForkJoinPool pool = new ForkJoinPool(Integer.getInteger("net.minecraft.server.DataConverterRegistry.bootstrapThreads", Math.min(Runtime.getRuntime().availableProcessors(), 2)));
|
- ForkJoinPool pool = new ForkJoinPool(Integer.getInteger("net.minecraft.server.DataConverterRegistry.bootstrapThreads", Math.min(Runtime.getRuntime().availableProcessors(), 2)));
|
||||||
+ ForkJoinPool pool = new ForkJoinPool(Integer.getInteger("net.minecraft.server.DataConverterRegistry.bootstrapThreads", Math.min(6, Math.max(Runtime.getRuntime().availableProcessors() - 2, 1)))); // Paper - use more reasonable default
|
+ ForkJoinPool pool = new ForkJoinPool(Integer.getInteger("net.minecraft.server.DataConverterRegistry.bootstrapThreads", Math.min(6, Math.max(Runtime.getRuntime().availableProcessors() - 2, 2)))); // Paper - use more reasonable default - 2 is hard minimum to avoid using unlimited threads
|
||||||
DataFixer fixer = datafixerbuilder.build(pool);
|
DataFixer fixer = datafixerbuilder.build(pool);
|
||||||
pool.shutdown();
|
pool.shutdown();
|
||||||
return fixer;
|
return fixer;
|
||||||
|
|
Loading…
Reference in New Issue