Skip to content

Commit b444fbd

Browse files
committed
chore(ocp): warm up managed channel with lifecycle resume
ensure we have near-instant access to the gRPC channel Signed-off-by: Brandon McAnsh <git@bmcreations.dev>
1 parent 26d088f commit b444fbd

8 files changed

Lines changed: 26 additions & 7 deletions

File tree

apps/flipcash/core/src/main/kotlin/com/flipcash/app/core/ui/TokenSelectionPill.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ import androidx.compose.ui.res.painterResource
1616
import com.getcode.opencode.model.financial.Token
1717
import com.getcode.theme.CodeTheme
1818
import com.getcode.ui.core.R
19-
import com.getcode.ui.core.debugBounds
2019
import com.getcode.ui.core.rememberedClickable
2120

2221
@Composable

services/opencode/src/main/kotlin/com/getcode/opencode/controllers/MessagingController.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,7 @@ class MessagingController @Inject constructor(
164164
return repository.pollMessages(rendezvous)
165165
.map { messages ->
166166
messages.filter {
167+
trace(message = "Polled message kind: ${it.kindCase}")
167168
it.kindCase == MessagingService.Message.KindCase.REQUEST_TO_GIVE_BILL
168169
}
169170
}.mapCatching { messages ->

services/opencode/src/main/kotlin/com/getcode/opencode/controllers/TokenController.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ class TokenController @Inject constructor(
152152
.launchIn(scope)
153153
}
154154

155-
override fun onResume(owner: LifecycleOwner) {
155+
override fun onStart(owner: LifecycleOwner) {
156156
trace(
157157
tag = TAG,
158158
message = "Lifecycle resumed, starting reserve state stream",

services/opencode/src/main/kotlin/com/getcode/opencode/internal/exchange/OpenCodeExchange.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,7 @@ internal class OpenCodeExchange @Inject constructor(
5252
}
5353
}
5454

55-
override fun onResume(owner: LifecycleOwner) {
56-
super.onResume(owner)
55+
override fun onStart(owner: LifecycleOwner) {
5756
streamRates()
5857
}
5958

services/opencode/src/main/kotlin/com/getcode/opencode/internal/network/api/MessagingApi.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ import kotlinx.coroutines.Dispatchers
1515
import kotlinx.coroutines.flow.Flow
1616
import kotlinx.coroutines.withContext
1717
import java.io.ByteArrayOutputStream
18-
import java.util.concurrent.TimeUnit
1918
import javax.inject.Inject
2019

2120
internal class MessagingApi @Inject constructor(
Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,23 @@
11
package com.getcode.opencode.internal.network.core
22

3+
import androidx.lifecycle.DefaultLifecycleObserver
4+
import androidx.lifecycle.LifecycleOwner
5+
import androidx.lifecycle.ProcessLifecycleOwner
36
import io.grpc.ManagedChannel
47

5-
abstract class GrpcApi(protected val managedChannel: ManagedChannel)
8+
abstract class GrpcApi(protected val managedChannel: ManagedChannel): DefaultLifecycleObserver {
9+
10+
init {
11+
ProcessLifecycleOwner.get().lifecycle.addObserver(this)
12+
}
13+
14+
15+
override fun onStart(owner: LifecycleOwner) {
16+
super.onStart(owner)
17+
warmUp()
18+
}
19+
20+
private fun warmUp() {
21+
managedChannel.getState(true)
22+
}
23+
}

services/opencode/src/main/kotlin/com/getcode/opencode/internal/network/services/MessagingService.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
package com.getcode.opencode.internal.network.services
22

3+
import androidx.lifecycle.DefaultLifecycleObserver
4+
import androidx.lifecycle.LifecycleOwner
5+
import androidx.lifecycle.ProcessLifecycleOwner
36
import com.codeinc.opencode.gen.messaging.v1.MessagingService
47
import com.getcode.ed25519.Ed25519.KeyPair
58
import com.getcode.opencode.internal.bidi.BidirectionalStreamReference
@@ -123,6 +126,7 @@ internal class MessagingService @Inject constructor(
123126
suspend fun pollMessages(
124127
rendezvous: KeyPair,
125128
): Result<List<MessagingService.Message>> {
129+
trace("Message polling.")
126130
return runCatching { api.pollMessages(rendezvous) }
127131
.foldWithSuppression(
128132
onSuccess = { response ->

services/opencode/src/main/kotlin/com/getcode/opencode/internal/transactors/GrabBillTransactor.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import com.getcode.opencode.model.accounts.AccountCluster
1010
import com.getcode.opencode.model.core.OpenCodePayload
1111
import com.getcode.opencode.model.core.PayloadKind
1212
import com.getcode.opencode.model.transactions.TransactionMetadata
13-
import com.getcode.solana.keys.PublicKey
1413
import com.getcode.utils.CodeServerError
1514
import com.getcode.utils.ErrorUtils
1615
import kotlinx.coroutines.CoroutineScope

0 commit comments

Comments
 (0)