Skip to content

Commit 38e3cf2

Browse files
committed
PR feedback
1 parent 330353e commit 38e3cf2

File tree

3 files changed

+6
-5
lines changed

3 files changed

+6
-5
lines changed

runtime/protocol/http-client-engines/http-client-engine-okhttp/build.gradle.kts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ kotlin {
3636

3737
all {
3838
languageSettings.optIn("aws.smithy.kotlin.runtime.InternalApi")
39-
languageSettings.optIn("okhttp3.ExperimentalOkHttpApi")
4039
}
4140
}
4241
}

runtime/protocol/http-client-engines/http-client-engine-okhttp/jvm/src/aws/smithy/kotlin/runtime/http/engine/okhttp/ConnectionIdleMonitor.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import kotlinx.coroutines.*
99
import okhttp3.Call
1010
import okhttp3.Connection
1111
import okhttp3.ConnectionListener
12+
import okhttp3.ExperimentalOkHttpApi
1213
import okhttp3.internal.closeQuietly
1314
import okio.EOFException
1415
import okio.buffer
@@ -21,13 +22,13 @@ import kotlin.coroutines.coroutineContext
2122
import kotlin.time.Duration
2223
import kotlin.time.measureTime
2324

25+
@OptIn(ExperimentalOkHttpApi::class)
2426
internal class ConnectionIdleMonitor(val pollInterval: Duration) : ConnectionListener() {
2527
private val monitorScope = CoroutineScope(Dispatchers.IO + SupervisorJob())
2628
private val monitors = ConcurrentHashMap<Connection, Job>()
2729

2830
fun close(): Unit = runBlocking {
2931
monitors.values.forEach { it.cancelAndJoin() }
30-
monitorScope.cancel()
3132
}
3233

3334
private fun Call.callContext() =

runtime/protocol/http-client-engines/http-client-engine-okhttp/jvm/src/aws/smithy/kotlin/runtime/http/engine/okhttp/OkHttpEngine.kt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public class OkHttpEngine(
4444
}
4545

4646
private val metrics = HttpClientMetrics(TELEMETRY_SCOPE, config.telemetryProvider)
47-
private val connectionIdleMonitor = if (config.connectionIdlePollingInterval != null) ConnectionIdleMonitor(config.connectionIdlePollingInterval) else null
47+
private val connectionIdleMonitor = config.connectionIdlePollingInterval?.let { ConnectionIdleMonitor(it) }
4848
private val client = config.buildClientWithConnectionListener(metrics, connectionIdleMonitor)
4949

5050
override suspend fun roundTrip(context: ExecutionContext, request: HttpRequest): HttpCall {
@@ -100,12 +100,12 @@ private fun OkHttpEngineConfig.buildClientFromConfig(
100100
writeTimeout(config.socketWriteTimeout.toJavaDuration())
101101

102102
// use our own pool configured with the timeout settings taken from config
103-
val pool = ConnectionPool(
103+
val pool = poolOverride ?: ConnectionPool(
104104
maxIdleConnections = 5, // The default from the no-arg ConnectionPool() constructor
105105
keepAliveDuration = config.connectionIdleTimeout.inWholeMilliseconds,
106106
TimeUnit.MILLISECONDS,
107107
)
108-
connectionPool(poolOverride ?: pool)
108+
connectionPool(pool)
109109

110110
val dispatcher = Dispatcher().apply {
111111
maxRequests = config.maxConcurrency.toInt()
@@ -152,6 +152,7 @@ public fun OkHttpEngineConfig.buildClient(
152152
* Convert SDK version of HTTP configuration to OkHttp specific configuration and return the configured client
153153
*/
154154
// Used by OkHttpEngine - OkHttp5 does have `connectionListener`
155+
@OptIn(ExperimentalOkHttpApi::class)
155156
private fun OkHttpEngineConfig.buildClientWithConnectionListener(
156157
metrics: HttpClientMetrics,
157158
connectionListener: ConnectionIdleMonitor?,

0 commit comments

Comments
 (0)