Skip to content

Commit 260e367

Browse files
author
Oleksandr Dzhychko
authored
Merge pull request #1260 from modelix/fix/use-do-not-use-store-in-request-thread
fix(model-server): do not put objects into store in request thread
2 parents 3e747d1 + 0c69ab2 commit 260e367

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

model-server/src/main/kotlin/org/modelix/model/server/handlers/ModelReplicationServer.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -216,8 +216,11 @@ class ModelReplicationServer(
216216
val branchRef = repositoryId(repository).getBranchReference(branch)
217217
val deltaFromClient = call.receive<VersionDelta>()
218218
deltaFromClient.checkObjectHashes()
219-
@OptIn(RequiresTransaction::class) // no transactions required for immutable store
220-
repositoriesManager.getStoreClient(RepositoryId(repository), true).putAll(deltaFromClient.getAllObjects())
219+
val objectsFromClient = deltaFromClient.getAllObjects()
220+
withContext(Dispatchers.IO) {
221+
@OptIn(RequiresTransaction::class) // no transactions required for immutable store
222+
repositoriesManager.getStoreClient(RepositoryId(repository), true).putAll(objectsFromClient)
223+
}
221224
@OptIn(RequiresTransaction::class)
222225
val mergedHash = runWrite {
223226
repositoriesManager.mergeChanges(branchRef, deltaFromClient.versionHash)

0 commit comments

Comments
 (0)