From 29857e33e224813c2264b833353f658a9b26cb90 Mon Sep 17 00:00:00 2001 From: Avently <7953703+avently@users.noreply.github.com> Date: Tue, 21 Nov 2023 18:46:19 +0700 Subject: [PATCH] multiplatform: init haskell in different thread --- .../simplex/common/platform/AppCommon.android.kt | 9 ++++++++- .../jvmMain/kotlin/chat/simplex/desktop/Main.kt | 14 +++++++++----- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/apps/multiplatform/common/src/androidMain/kotlin/chat/simplex/common/platform/AppCommon.android.kt b/apps/multiplatform/common/src/androidMain/kotlin/chat/simplex/common/platform/AppCommon.android.kt index 90b18bde93..1145ae41bf 100644 --- a/apps/multiplatform/common/src/androidMain/kotlin/chat/simplex/common/platform/AppCommon.android.kt +++ b/apps/multiplatform/common/src/androidMain/kotlin/chat/simplex/common/platform/AppCommon.android.kt @@ -68,5 +68,12 @@ fun initHaskell() { s.acquire() pipeStdOutToSocket(socketName) - initHS() + var inited = false + thread(name = "initHs", isDaemon = true) { + initHS() + inited = true + } + while (!inited) { + Thread.sleep(2) + } } diff --git a/apps/multiplatform/desktop/src/jvmMain/kotlin/chat/simplex/desktop/Main.kt b/apps/multiplatform/desktop/src/jvmMain/kotlin/chat/simplex/desktop/Main.kt index 787e41fd81..513a662a14 100644 --- a/apps/multiplatform/desktop/src/jvmMain/kotlin/chat/simplex/desktop/Main.kt +++ b/apps/multiplatform/desktop/src/jvmMain/kotlin/chat/simplex/desktop/Main.kt @@ -3,10 +3,7 @@ package chat.simplex.desktop import chat.simplex.common.platform.* import chat.simplex.common.showApp import java.io.File -import java.nio.file.* -import java.nio.file.attribute.BasicFileAttributes -import java.nio.file.attribute.FileTime -import kotlin.io.path.setLastModifiedTime +import kotlin.concurrent.thread fun main() { initHaskell() @@ -30,7 +27,14 @@ private fun initHaskell() { //System.load(File(File(vlcDir, "vlc"), libXcb).absolutePath) System.setProperty("jna.library.path", vlcDir.absolutePath) //discoverVlcLibs(File(File(vlcDir, "vlc"), "plugins").absolutePath) - initHS() + var inited = false + thread(name = "initHs", isDaemon = true) { + initHS() + inited = true + } + while (!inited) { + Thread.sleep(2) + } } private fun windowsLoadRequiredLibs(libsTmpDir: File, vlcDir: File) {