From 2326e6638241b3111c817aa014a664e5eba57f48 Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Sat, 1 Jun 2024 15:16:18 -0400 Subject: [PATCH] Solves race conditions when connecting to relays. --- .../amethyst/service/relays/Relay.kt | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/relays/Relay.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/relays/Relay.kt index e9e63fede..d4c1ee231 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/service/relays/Relay.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/relays/Relay.kt @@ -116,7 +116,7 @@ class Relay( private var connectingBlock = AtomicBoolean() fun connectAndRun(onConnected: (Relay) -> Unit) { - Log.d("Relay", "Relay.connect $url hasProxy: ${this.httpClient.proxy != null}") + Log.d("Relay", "Relay.connect $url connecting: ${connectingBlock.get()} hasProxy: ${this.httpClient.proxy != null}") // BRB is crashing OkHttp Deflater object :( if (url.contains("brb.io")) return @@ -125,13 +125,16 @@ class Relay( return } - checkNotInMainThread() - - if (socket != null) return - - lastConnectTentative = TimeUtils.now() - try { + checkNotInMainThread() + + if (socket != null) { + connectingBlock.set(false) + return + } + + lastConnectTentative = TimeUtils.now() + val request = Request.Builder() .header("User-Agent", "Amethyst/${BuildConfig.VERSION_NAME}")