[rd] IJPL-162621: Use Frontend and Workspace partitions for transactors

See fleet.kernel.rebase.RebaseLoopKt.offering where the check for Frontend partition is happening. Since by default partition is Common, it means that this check never succeeded

GitOrigin-RevId: 133ed72d293fa1900cff8aa9f900a7b85217ec80
This commit is contained in:
Nikolay Rykunov
2025-02-05 20:50:33 +00:00
committed by intellij-monorepo-bot
parent 469010a42d
commit 8bb98d4b9e
@@ -4,19 +4,12 @@ package com.intellij.platform.ide.bootstrap.kernel
import com.intellij.platform.kernel.util.kernelCoroutineContext
import com.jetbrains.rhizomedb.EffectInstruction
import com.jetbrains.rhizomedb.MapAttribute
import com.jetbrains.rhizomedb.Part
import com.jetbrains.rhizomedb.ReifyEntities
import fleet.kernel.FrontendPart
import fleet.kernel.TransactorMiddleware
import fleet.kernel.rebase.AddCoder
import fleet.kernel.rebase.CompositeCoder
import fleet.kernel.rebase.CreateEntityCoder
import fleet.kernel.rebase.FollowerTransactorMiddleware
import fleet.kernel.rebase.InstructionSet
import fleet.kernel.rebase.LeaderTransactorMiddleware
import fleet.kernel.rebase.LocalInstructionCoder
import fleet.kernel.rebase.RemoveCoder
import fleet.kernel.rebase.RetractAttributeCoder
import fleet.kernel.rebase.RetractEntityCoder
import fleet.kernel.rebase.ValidateCoder
import fleet.kernel.WorkspacePart
import fleet.kernel.rebase.*
import fleet.kernel.rete.withRete
import fleet.kernel.withTransactor
import kotlinx.coroutines.CompletableDeferred
@@ -42,18 +35,18 @@ private val CommonInstructionSet: InstructionSet =
@ApiStatus.Internal
suspend fun startClientKernel(scope: CoroutineScope): KernelStarted {
return startKernel(scope, FollowerTransactorMiddleware(CommonInstructionSet.encoder()))
return startKernel(scope, FollowerTransactorMiddleware(CommonInstructionSet.encoder()), partition = FrontendPart)
}
@ApiStatus.Internal
suspend fun startServerKernel(scope: CoroutineScope): KernelStarted {
return startKernel(scope, LeaderTransactorMiddleware(CommonInstructionSet.encoder()))
return startKernel(scope, LeaderTransactorMiddleware(CommonInstructionSet.encoder()), partition = WorkspacePart)
}
private suspend fun startKernel(scope: CoroutineScope, middleware: TransactorMiddleware): KernelStarted {
private suspend fun startKernel(scope: CoroutineScope, middleware: TransactorMiddleware, partition: Part): KernelStarted {
val kernelContextDeferred = CompletableDeferred<CoroutineContext>()
scope.launch {
withTransactor(emptyList(), middleware = middleware) { _ ->
withTransactor(emptyList(), middleware = middleware, defaultPart = partition) { _ ->
withRete {
kernelContextDeferred.complete(this.coroutineContext.kernelCoroutineContext())
awaitCancellation()