Don't use parallelStream

because https://github.com/MinecraftForge/EventBus/issues/44
This commit is contained in:
DBotThePony 2023-03-11 13:29:53 +07:00
parent d811a671c5
commit 2ec47c5d59
Signed by: DBot
GPG Key ID: DCC23B5715498507
4 changed files with 9 additions and 10 deletions

View File

@ -246,7 +246,8 @@ fun String.toUUID(): UUID {
fun <T> Collection<T>.probablyParallelStream(): Stream<out T> { fun <T> Collection<T>.probablyParallelStream(): Stream<out T> {
if (size >= 400) { if (size >= 400) {
return parallelStream() // TODO: https://github.com/MinecraftForge/EventBus/issues/44
return stream()
} }
return stream() return stream()

View File

@ -392,7 +392,7 @@ class QuantumBatteryItem : Item {
companion object { companion object {
fun clientDisconnect(event: ClientPlayerNetworkEvent.LoggingOut) { fun clientDisconnect(event: ClientPlayerNetworkEvent.LoggingOut) {
ForgeRegistries.ITEMS.values.parallelStream().forEach { if (it is QuantumBatteryItem) it.clientPowerMap.clear() } ForgeRegistries.ITEMS.values.stream().forEach { if (it is QuantumBatteryItem) it.clientPowerMap.clear() }
} }
fun readPacket(buff: FriendlyByteBuf): ChargePacket { fun readPacket(buff: FriendlyByteBuf): ChargePacket {

View File

@ -5,8 +5,6 @@ import net.minecraft.resources.ResourceLocation
import net.minecraft.tags.TagKey import net.minecraft.tags.TagKey
import net.minecraft.world.item.Item import net.minecraft.world.item.Item
import ru.dbotthepony.mc.otm.core.math.Decimal import ru.dbotthepony.mc.otm.core.math.Decimal
import ru.dbotthepony.mc.otm.core.probablyParallelStream
import ru.dbotthepony.mc.otm.core.nbt.set
import ru.dbotthepony.mc.otm.core.set import ru.dbotthepony.mc.otm.core.set
class InsertAction : AbstractRegistryAction { class InsertAction : AbstractRegistryAction {
@ -68,7 +66,7 @@ class InsertAction : AbstractRegistryAction {
if (key != null) { if (key != null) {
if (replaceIfExists) { if (replaceIfExists) {
// search & replace in parallel, if possible // search & replace in parallel, if possible
val replaced = registry.probablyParallelStream().anyMatch { val replaced = registry.stream().anyMatch {
if (it is MutableKeyEntry && it.key == key) { if (it is MutableKeyEntry && it.key == key) {
if (!comparePriority || it.priority < priority!!) { if (!comparePriority || it.priority < priority!!) {
it.matter = matter it.matter = matter
@ -93,7 +91,7 @@ class InsertAction : AbstractRegistryAction {
) )
} }
} else { } else {
if (registry.probablyParallelStream().anyMatch { it is MutableKeyEntry && it.key == key }) { if (registry.stream().anyMatch { it is MutableKeyEntry && it.key == key }) {
fail { "Value with key $key already exists" } fail { "Value with key $key already exists" }
return return
} }
@ -110,7 +108,7 @@ class InsertAction : AbstractRegistryAction {
} else { } else {
if (replaceIfExists) { if (replaceIfExists) {
// search & replace in parallel, if possible // search & replace in parallel, if possible
val replaced = registry.probablyParallelStream().anyMatch { val replaced = registry.stream().anyMatch {
if (it is MutableTagEntry && it.tag == tag) { if (it is MutableTagEntry && it.tag == tag) {
if (!comparePriority || it.priority < priority!!) { if (!comparePriority || it.priority < priority!!) {
it.matter = matter it.matter = matter
@ -135,7 +133,7 @@ class InsertAction : AbstractRegistryAction {
) )
} }
} else { } else {
if (registry.probablyParallelStream().anyMatch { it is MutableTagEntry && it.tag == tag }) { if (registry.stream().anyMatch { it is MutableTagEntry && it.tag == tag }) {
fail { "Value with tag $tag already exists" } fail { "Value with tag $tag already exists" }
return return
} }

View File

@ -490,7 +490,7 @@ object MatterManager {
val ignoreDamageables = data["ignore_damageables"]?.asBoolean ?: false val ignoreDamageables = data["ignore_damageables"]?.asBoolean ?: false
val allowBacktrack = data["allow_backtrack"]?.asBoolean ?: true val allowBacktrack = data["allow_backtrack"]?.asBoolean ?: true
var stream = server.recipeManager.byType(findRecipeType).values.parallelStream().filter { !it.isIncomplete } var stream = server.recipeManager.byType(findRecipeType).values.stream().filter { !it.isIncomplete }
if (ignoreDamageables) { if (ignoreDamageables) {
stream = stream.filter { it.ingredients.stream().flatMap { it.items.stream() }.noneMatch { it.isDamageableItem } } stream = stream.filter { it.ingredients.stream().flatMap { it.items.stream() }.noneMatch { it.isDamageableItem } }
@ -523,7 +523,7 @@ object MatterManager {
val allowBacktrack = data["allow_backtrack"]?.asBoolean ?: true val allowBacktrack = data["allow_backtrack"]?.asBoolean ?: true
val ignoreDamageables = data["ignore_damageables"]?.asBoolean ?: false val ignoreDamageables = data["ignore_damageables"]?.asBoolean ?: false
val isCritical = data["is_critical"]?.asBoolean ?: true val isCritical = data["is_critical"]?.asBoolean ?: true
var stream = server.recipeManager.byType(RecipeType.CRAFTING).values.parallelStream().filter { !it.isIncomplete } var stream = server.recipeManager.byType(RecipeType.CRAFTING).values.stream().filter { !it.isIncomplete }
if (ignoreDamageables) { if (ignoreDamageables) {
stream = stream.filter { it.ingredients.stream().flatMap { it.items.stream() }.noneMatch { it.isDamageableItem } } stream = stream.filter { it.ingredients.stream().flatMap { it.items.stream() }.noneMatch { it.isDamageableItem } }