From 8bb98d4b9eff90f09052212c28151eeea61cba9e Mon Sep 17 00:00:00 2001 From: Nikolay Rykunov Date: Wed, 5 Feb 2025 19:52:12 +0100 Subject: [PATCH] [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 --- .../platform/ide/bootstrap/kernel/kernel.kt | 23 +++++++------------ 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/platform/platform-impl/bootstrap/kernel/src/com/intellij/platform/ide/bootstrap/kernel/kernel.kt b/platform/platform-impl/bootstrap/kernel/src/com/intellij/platform/ide/bootstrap/kernel/kernel.kt index 52458c183211..d57a551dc20a 100644 --- a/platform/platform-impl/bootstrap/kernel/src/com/intellij/platform/ide/bootstrap/kernel/kernel.kt +++ b/platform/platform-impl/bootstrap/kernel/src/com/intellij/platform/ide/bootstrap/kernel/kernel.kt @@ -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() scope.launch { - withTransactor(emptyList(), middleware = middleware) { _ -> + withTransactor(emptyList(), middleware = middleware, defaultPart = partition) { _ -> withRete { kernelContextDeferred.complete(this.coroutineContext.kernelCoroutineContext()) awaitCancellation()