Replace MutableMap with concurrent maps
authorLanius Trolling <lanius@laniustrolling.dev>
Sun, 24 Dec 2023 18:03:52 +0000 (13:03 -0500)
committerLanius Trolling <lanius@laniustrolling.dev>
Sun, 24 Dec 2023 18:03:52 +0000 (13:03 -0500)
.idea/artifacts/map_viewer_js.xml [deleted file]
.idea/misc.xml
src/jvmMain/kotlin/info/mechyrdia/data/nations.kt
src/jvmMain/kotlin/info/mechyrdia/lore/preparser_functions.kt

diff --git a/.idea/artifacts/map_viewer_js.xml b/.idea/artifacts/map_viewer_js.xml
deleted file mode 100644 (file)
index 9769f80..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-<component name="ArtifactManager">
-  <artifact type="jar" name="map-viewer-js">
-    <output-path>$PROJECT_DIR$/map-viewer/build/libs</output-path>
-    <root id="archive" name="map-viewer-js.jar">
-      <element id="module-output" name="factbooks.map-viewer.jsMain" />
-    </root>
-  </artifact>
-</component>
\ No newline at end of file
index 1ad7afe2ee65abc9378b34639a0c859d6a1bb5ae..0aceffabffbd461c90a033f20e08a3ef854915f7 100644 (file)
@@ -94,7 +94,7 @@
   <component name="PWA">
     <option name="wasEnabledAtLeastOnce" value="true" />
   </component>
-  <component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="17" project-jdk-type="JavaSDK">
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_17" project-jdk-name="17" project-jdk-type="JavaSDK">
     <output url="file://$PROJECT_DIR$/out" />
   </component>
   <component name="RustProjectSettings">
index 255e0f0606355314d19abc6538c59c05bdd35aab..4bb5f219e6cea12b693c99523467cf896a026b62 100644 (file)
@@ -11,6 +11,7 @@ import io.ktor.server.sessions.*
 import io.ktor.util.*
 import kotlinx.serialization.SerialName
 import kotlinx.serialization.Serializable
+import java.util.concurrent.ConcurrentHashMap
 
 @Serializable
 data class NationData(
@@ -49,7 +50,7 @@ val CallNationCacheAttribute = AttributeKey<MutableMap<Id<NationData>, NationDat
 
 val ApplicationCall.nationCache: MutableMap<Id<NationData>, NationData>
        get() = attributes.getOrNull(CallNationCacheAttribute)
-               ?: mutableMapOf<Id<NationData>, NationData>().also { cache ->
+               ?: ConcurrentHashMap<Id<NationData>, NationData>().also { cache ->
                        attributes.put(CallNationCacheAttribute, cache)
                }
 
index bdc6302a0a2d94e9e187fa4acf949a70bfffd062..53c34d01c3c68c94ef78c2a9951ba89510732070 100644 (file)
@@ -7,6 +7,7 @@ import io.ktor.util.*
 import java.io.File
 import java.io.Writer
 import java.security.MessageDigest
+import java.util.concurrent.ConcurrentHashMap
 import javax.script.Compilable
 import javax.script.CompiledScript
 import javax.script.ScriptEngineManager
@@ -25,7 +26,7 @@ value class ScriptedMustacheLambda(private val script: CompiledScript) : Mustach
 object PreParserFunctions {
        private val scriptEngine = ThreadLocal.withInitial { ScriptEngineManager().getEngineByExtension("groovy") }
        private val hasher = ThreadLocal.withInitial { MessageDigest.getInstance("SHA-256") }
-       private val cache = mutableMapOf<String, CompiledScript>()
+       private val cache = ConcurrentHashMap<String, CompiledScript>()
        
        private fun loadFunction(name: String): Mustache.Lambda {
                val scriptFile = File(Configuration.CurrentConfiguration.scriptDir).combineSafe("$name.groovy")