Antonio Acuña Prieto
03/09/2024, 5:29 PMAleksei Tirman [JB]
03/11/2024, 7:38 AMAntonio Acuña Prieto
03/11/2024, 7:47 AMAleksei Tirman [JB]
03/11/2024, 8:26 AMAntonio Acuña Prieto
03/11/2024, 8:58 AMAleksei Tirman [JB]
03/11/2024, 10:05 AM[io.ktor.server.engine.DefaultUncaughtExceptionHandler@7cf0fc5c, CoroutineName(call-handler), io.ktor.server.netty.NettyDispatcher$CurrentContext@c180069, StandaloneCoroutine{Active}@341891db, NettyDispatcher@4fe0efc1]
Aleksei Tirman [JB]
03/11/2024, 10:06 AMAntonio Acuña Prieto
03/11/2024, 10:19 AMfun main(args: Array<String>) = EngineMain.main(args)
fun Application.routingModule() {
routing {
get {
this.call.respond(HttpStatusCode.OK) // breakpoint here
}
}
}
The context is:
[io.ktor.client.engine.KtorCallContextElement@4714d20c, CoroutineName(request), kotlinx.coroutines.UndispatchedMarker@6e311309, io.opentelemetry.extension.kotlin.KotlinContextElement@354937d4, PluginsTrace(), UndispatchedCoroutine{Active}@5842a908, <http://Dispatchers.IO]|Dispatchers.IO]>
Antonio Acuña Prieto
03/11/2024, 10:26 AM[io.ktor.server.engine.DefaultUncaughtExceptionHandler@54faf79e, CoroutineName(call-handler), io.ktor.server.netty.NettyDispatcher$CurrentContext@8f50c428, kotlinx.coroutines.UndispatchedMarker@1f0fc589, PluginsTrace(), UndispatchedCoroutine{Active}@a1e0de4f, NettyDispatcher@cdc429ee]
It seems like something I'm doing is moving all my requests to IO dispatcher, am I right?Aleksei Tirman [JB]
03/11/2024, 10:28 AMEngineMain
object is imported from?Antonio Acuña Prieto
03/11/2024, 10:28 AMimport io.ktor.server.netty.*
In both examplesAntonio Acuña Prieto
03/11/2024, 10:38 AMAntonio Acuña Prieto
03/11/2024, 2:16 PMtestApplication
its Dispatchers.IO, when you debug the app running it gets NettyDispatcher
Antonio Acuña Prieto
03/12/2024, 8:48 AMAleksei Tirman [JB]
03/12/2024, 8:58 AMtestApplication
, I observe the following coroutine context:
[CoroutineId(1), "coroutine#1":BlockingCoroutine{Active}@42530531, BlockingEventLoop@5a3bc7ed]
Antonio Acuña Prieto
03/12/2024, 9:08 AMAleksei Tirman [JB]
03/12/2024, 9:28 AM3.0.0-beta-1
, you can override the default dispatcher. Here is an example:
@Test
fun test() = testApplication {
engine {
dispatcher = Dispatchers.Default
}
application {
routing {
post {
println(coroutineContext)
call.respondText { "POST" }
}
}
}
// ...
}
Antonio Acuña Prieto
03/12/2024, 9:30 AM