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()