diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ktor/CronetEngine.kt b/app/src/main/kotlin/com/hippo/ehviewer/ktor/CronetEngine.kt index d761c08db..2217f4440 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ktor/CronetEngine.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ktor/CronetEngine.kt @@ -24,8 +24,6 @@ import java.nio.ByteBuffer import kotlin.coroutines.CoroutineContext import kotlin.coroutines.resume import kotlin.coroutines.resumeWithException -import kotlinx.coroutines.DelicateCoroutinesApi -import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.channels.Channel import kotlinx.coroutines.channels.consumeEach import kotlinx.coroutines.job @@ -42,7 +40,6 @@ object CronetEngine : HttpClientEngineBase("Cronet") { @InternalAPI override suspend fun execute(data: HttpRequestData) = executeHttpRequest(callContext(), data) - @OptIn(DelicateCoroutinesApi::class) private suspend fun executeHttpRequest( callContext: CoroutineContext, data: HttpRequestData, @@ -50,7 +47,7 @@ object CronetEngine : HttpClientEngineBase("Cronet") { val requestTime = GMTDate() val callback = object : UrlRequest.Callback() { - lateinit var chunkChan: Channel + val chunkChan = Channel() override fun onRedirectReceived(request: UrlRequest, info: UrlResponseInfo, newLocationUrl: String) { continuation.resume( info.toHttpResponseData( @@ -65,9 +62,8 @@ object CronetEngine : HttpClientEngineBase("Cronet") { info.toHttpResponseData( requestTime = requestTime, callContext = callContext, - responseBody = GlobalScope.writer(callContext) { + responseBody = writer(callContext.job) { pool.useInstance { - chunkChan = Channel() request.read(it) chunkChan.consumeEach { buffer -> buffer.flip()