From fc4dc349c0cbc0c9ca08eec8f0b4d7a738d1dc9d Mon Sep 17 00:00:00 2001 From: Priveetee Date: Sun, 10 May 2026 21:43:47 +0200 Subject: [PATCH] fix: move upload writes off route threads --- .../typetype/server/services/PipePipeBackupUploadWriter.kt | 6 ++++-- .../typetype/server/services/YoutubeTakeoutUploadWriter.kt | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/kotlin/dev/typetype/server/services/PipePipeBackupUploadWriter.kt b/src/main/kotlin/dev/typetype/server/services/PipePipeBackupUploadWriter.kt index b91c568..76fda29 100644 --- a/src/main/kotlin/dev/typetype/server/services/PipePipeBackupUploadWriter.kt +++ b/src/main/kotlin/dev/typetype/server/services/PipePipeBackupUploadWriter.kt @@ -2,11 +2,13 @@ package dev.typetype.server.services import io.ktor.utils.io.ByteReadChannel import io.ktor.utils.io.jvm.javaio.toInputStream +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.withContext import java.nio.file.Files import java.nio.file.Path object PipePipeBackupUploadWriter { - fun writeWithLimit(channel: ByteReadChannel, target: Path, maxBytes: Long): Long { + suspend fun writeWithLimit(channel: ByteReadChannel, target: Path, maxBytes: Long): Long = withContext(Dispatchers.IO) { var written = 0L channel.toInputStream().use { input -> Files.newOutputStream(target).use { output -> @@ -20,6 +22,6 @@ object PipePipeBackupUploadWriter { } } } - return written + written } } diff --git a/src/main/kotlin/dev/typetype/server/services/YoutubeTakeoutUploadWriter.kt b/src/main/kotlin/dev/typetype/server/services/YoutubeTakeoutUploadWriter.kt index cc07999..f4c406c 100644 --- a/src/main/kotlin/dev/typetype/server/services/YoutubeTakeoutUploadWriter.kt +++ b/src/main/kotlin/dev/typetype/server/services/YoutubeTakeoutUploadWriter.kt @@ -2,11 +2,13 @@ package dev.typetype.server.services import io.ktor.utils.io.ByteReadChannel import io.ktor.utils.io.jvm.javaio.toInputStream +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.withContext import java.nio.file.Files import java.nio.file.Path object YoutubeTakeoutUploadWriter { - fun writeWithLimit(channel: ByteReadChannel, target: Path, maxBytes: Long): Long { + suspend fun writeWithLimit(channel: ByteReadChannel, target: Path, maxBytes: Long): Long = withContext(Dispatchers.IO) { var written = 0L channel.toInputStream().use { input -> Files.newOutputStream(target).use { output -> @@ -20,6 +22,6 @@ object YoutubeTakeoutUploadWriter { } } } - return written + written } }